{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {
    "id": "97Ad8yROpHV8"
   },
   "source": [
    "# Signal quality assessment\n",
    "In this tutorial we will assess the quality of MIMIC waveform signals.\n",
    "\n",
    "Our **objectives** are to:\n",
    "- Understand a template-matching approach to assess signal quality of cardiovascular signals.\n",
    "- Apply the template-matching approach to ECG and PPG signals.\n",
    "- Understand how to interpret the results."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "id": "efztffyOpHV-"
   },
   "source": [
    "<div class=\"alert alert-block alert-warning\"><p><b>Context:</b> Physiological signals can be subject to noise from multiple sources. Signal quality assessment algorithms assess the quality of signals to determine whether they are of sufficient quality for a particular purpose (such as heart rate estimation). In this tutorial we will use the template-matching signal quality assessment algorithm described in <a href= https://doi.org/10.1109/JBHI.2014.2338351>this publication</a>.</p></div>"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "id": "1y92CrBlpHV_"
   },
   "source": [
    "<div class=\"alert alert-block alert-info\"><p><b>Extension:</b> If you want to find out more about photoplethysmography (PPG) signal quality assessment then I'd recommend <a href= https://doi.org/10.3390/app12199582>this publication</a>.</p></div>"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "id": "McluxdGrpHV_"
   },
   "source": [
    "## Setup"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Import packages"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "id": "742rlU3ApHV_"
   },
   "source": [
    "_The following steps have been covered in previous tutorials. We'll just re-use the previous code here._"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "# Packages\n",
    "from scipy import signal\n",
    "import numpy as np\n",
    "import matplotlib.pyplot as plt\n",
    "!pip install wfdb==4.0.0\n",
    "import wfdb\n",
    "\n",
    "# import sys\n",
    "# from pathlib import Path"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Import ECG beat detectors"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "!pip install py-ecg-detectors"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Details of MIMIC record to use"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Specify details of a MIMIC database record to use in this tutorial"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 102,
   "metadata": {
    "id": "byobDIEIpHV_"
   },
   "outputs": [],
   "source": [
    "# The name of the MIMIC IV Waveform Database on Physionet\n",
    "database_name = 'mimic4wdb/0.1.0'\n",
    "\n",
    "# Segment for analysis\n",
    "segment_names = ['83404654_0005', '82924339_0007', '84248019_0005', '82439920_0004', '82800131_0002', '84304393_0001', '89464742_0001', '88958796_0004', '88995377_0001', '85230771_0004', '86643930_0004', '81250824_0005', '87706224_0003', '83058614_0005', '82803505_0017', '88574629_0001', '87867111_0012', '84560969_0001', '87562386_0001', '88685937_0001', '86120311_0001', '89866183_0014', '89068160_0002', '86380383_0001', '85078610_0008', '87702634_0007', '84686667_0002', '84802706_0002', '81811182_0004', '84421559_0005', '88221516_0007', '80057524_0005', '84209926_0018', '83959636_0010', '89989722_0016', '89225487_0007', '84391267_0001', '80889556_0002', '85250558_0011', '84567505_0005', '85814172_0007', '88884866_0005', '80497954_0012', '80666640_0014', '84939605_0004', '82141753_0018', '86874920_0014', '84505262_0010', '86288257_0001', '89699401_0001', '88537698_0013', '83958172_0001']\n",
    "segment_dirs = ['mimic4wdb/0.1.0/waves/p100/p10020306/83404654', 'mimic4wdb/0.1.0/waves/p101/p10126957/82924339', 'mimic4wdb/0.1.0/waves/p102/p10209410/84248019', 'mimic4wdb/0.1.0/waves/p109/p10952189/82439920', 'mimic4wdb/0.1.0/waves/p111/p11109975/82800131', 'mimic4wdb/0.1.0/waves/p113/p11392990/84304393', 'mimic4wdb/0.1.0/waves/p121/p12168037/89464742', 'mimic4wdb/0.1.0/waves/p121/p12173569/88958796', 'mimic4wdb/0.1.0/waves/p121/p12188288/88995377', 'mimic4wdb/0.1.0/waves/p128/p12872596/85230771', 'mimic4wdb/0.1.0/waves/p129/p12933208/86643930', 'mimic4wdb/0.1.0/waves/p130/p13016481/81250824', 'mimic4wdb/0.1.0/waves/p132/p13240081/87706224', 'mimic4wdb/0.1.0/waves/p136/p13624686/83058614', 'mimic4wdb/0.1.0/waves/p137/p13791821/82803505', 'mimic4wdb/0.1.0/waves/p141/p14191565/88574629', 'mimic4wdb/0.1.0/waves/p142/p14285792/87867111', 'mimic4wdb/0.1.0/waves/p143/p14356077/84560969', 'mimic4wdb/0.1.0/waves/p143/p14363499/87562386', 'mimic4wdb/0.1.0/waves/p146/p14695840/88685937', 'mimic4wdb/0.1.0/waves/p149/p14931547/86120311', 'mimic4wdb/0.1.0/waves/p151/p15174162/89866183', 'mimic4wdb/0.1.0/waves/p153/p15312343/89068160', 'mimic4wdb/0.1.0/waves/p153/p15342703/86380383', 'mimic4wdb/0.1.0/waves/p155/p15552902/85078610', 'mimic4wdb/0.1.0/waves/p156/p15649186/87702634', 'mimic4wdb/0.1.0/waves/p158/p15857793/84686667', 'mimic4wdb/0.1.0/waves/p158/p15865327/84802706', 'mimic4wdb/0.1.0/waves/p158/p15896656/81811182', 'mimic4wdb/0.1.0/waves/p159/p15920699/84421559', 'mimic4wdb/0.1.0/waves/p160/p16034243/88221516', 'mimic4wdb/0.1.0/waves/p165/p16566444/80057524', 'mimic4wdb/0.1.0/waves/p166/p16644640/84209926', 'mimic4wdb/0.1.0/waves/p167/p16709726/83959636', 'mimic4wdb/0.1.0/waves/p167/p16715341/89989722', 'mimic4wdb/0.1.0/waves/p168/p16818396/89225487', 'mimic4wdb/0.1.0/waves/p170/p17032851/84391267', 'mimic4wdb/0.1.0/waves/p172/p17229504/80889556', 'mimic4wdb/0.1.0/waves/p173/p17301721/85250558', 'mimic4wdb/0.1.0/waves/p173/p17325001/84567505', 'mimic4wdb/0.1.0/waves/p174/p17490822/85814172', 'mimic4wdb/0.1.0/waves/p177/p17738824/88884866', 'mimic4wdb/0.1.0/waves/p177/p17744715/80497954', 'mimic4wdb/0.1.0/waves/p179/p17957832/80666640', 'mimic4wdb/0.1.0/waves/p180/p18080257/84939605', 'mimic4wdb/0.1.0/waves/p181/p18109577/82141753', 'mimic4wdb/0.1.0/waves/p183/p18324626/86874920', 'mimic4wdb/0.1.0/waves/p187/p18742074/84505262', 'mimic4wdb/0.1.0/waves/p188/p18824975/86288257', 'mimic4wdb/0.1.0/waves/p191/p19126489/89699401', 'mimic4wdb/0.1.0/waves/p193/p19313794/88537698', 'mimic4wdb/0.1.0/waves/p196/p19619764/83958172']\n",
    "\n",
    "# Segment 0 is helpful for filtering, and 3 and 8 are helpful for differentiation\n",
    "rel_segment_n = 0\n",
    "rel_segment_name = segment_names[rel_segment_n]\n",
    "rel_segment_dir = segment_dirs[rel_segment_n]\n",
    "\n",
    "rel_segment_n = 8 \n",
    "rel_segment_name = segment_names[rel_segment_n]\n",
    "rel_segment_dir = segment_dirs[rel_segment_n]"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Signal quality assessment algorithm settings"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Threshold to distinguish between high and low quality data."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 103,
   "metadata": {},
   "outputs": [],
   "source": [
    "thresh = 0.66 # For ECG, from: Orphanidou C et al., Signal-quality indices for the electrocardiogram and photoplethysmogram: derivation and applications to wireless monitoring. IEEE J Biomed Heal Informatics 2015;19:832–838. https://doi.org/10.1109/JBHI.2014.2338351"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Define template matching functions"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "- ```filter_ecg``` - normalises and applies a ~1-15 Hz Butterworth band-pass filter  "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 104,
   "metadata": {},
   "outputs": [],
   "source": [
    "def filter_ecg(x, fs):\n",
    "    sig = x\n",
    "    # sig = sig[:,0]\n",
    "    order = 3\n",
    "    low_cutoff = 1  # in Hz\n",
    "    high_cutoff = 15  # in Hz\n",
    "    cutoff_frequency = (low_cutoff, high_cutoff)\n",
    "    b, a = signal.butter(order, cutoff_frequency, btype='band', fs=fs)\n",
    "    # b, a = signal.butter(3, [0.004, 0.06], 'band')    # original \n",
    "    sig = signal.filtfilt(b, a, sig, padlen=150)\n",
    "    sig = (sig - min(sig)) / (max(sig) - min(sig))\n",
    "    return sig"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "- ```detect_beats``` - detects beats in the ECG signal"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 105,
   "metadata": {},
   "outputs": [],
   "source": [
    "from ecgdetectors import Detectors\n",
    "\n",
    "def detect_beats(sig, fs):\n",
    "    \n",
    "    # detect beats\n",
    "    detectors = Detectors(fs)\n",
    "    #beats = detectors.swt_detector(sig)\n",
    "    #beats = detectors.wqrs_detector(sig) \n",
    "    beats = detectors.hamilton_detector(sig)    \n",
    "    \n",
    "    # find R-peaks\n",
    "    tol_secs = 0.15\n",
    "    tol_samps = np.floor(fs*tol_secs)\n",
    "    for beat_no in range(0,len(beats)-1):\n",
    "            min_el = int(max([0, beats[beat_no]-tol_samps]))\n",
    "            max_el = int(min([len(sig), beats[beat_no]+tol_samps]))\n",
    "            curr_samps = sig[min_el:max_el+1]\n",
    "            beats[beat_no] = int(beats[beat_no]-tol_samps+np.argmax(curr_samps))\n",
    "    return beats"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "- ```find_rr_ints``` - finds RR intervals from beat indices"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 106,
   "metadata": {},
   "outputs": [],
   "source": [
    "def find_rr_ints(beats,fs):\n",
    "    \n",
    "    rr_int = []\n",
    "    for beat_no in range(0,len(beats)-1):\n",
    "        rr_int.append((1/fs)*(beats[beat_no+1]-beats[beat_no]))   # in secs\n",
    "    \n",
    "    return rr_int"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "- ```assess_feasibility``` - assesses feasibility of beat detections"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 107,
   "metadata": {},
   "outputs": [],
   "source": [
    "def assess_feasibility(beats):\n",
    "    \n",
    "    feas = 1\n",
    "    \n",
    "    # find HR\n",
    "    hr = 60*len(beats)/((beats[-1]-beats[0])/fs)  # in bpm\n",
    "\n",
    "    # check HR\n",
    "    if hr < 40 or hr > 180:\n",
    "        feas = 0\n",
    "        \n",
    "    # find RR intervals\n",
    "    rr_int = find_rr_ints(beats,fs)   # in secs\n",
    "        \n",
    "    # check max RR interval\n",
    "    if max(rr_int) > 3:\n",
    "        feas = 0\n",
    "    \n",
    "    # check max to min RR interval\n",
    "    rr_int_ratio = max(rr_int)/min(rr_int)\n",
    "    if rr_int_ratio >= 2.2:\n",
    "        feas = 0\n",
    "    \n",
    "    return feas"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "- ```calculate_med_rr_int``` - calculates the median RR interval (in samples)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 108,
   "metadata": {},
   "outputs": [],
   "source": [
    "def calculate_med_rr_int(beats):\n",
    "    \n",
    "    # find RR intervals\n",
    "    rr_int = find_rr_ints(beats,1)   # in samples\n",
    "    \n",
    "    # find median RR interval\n",
    "    med_rr_int = np.median(rr_int)\n",
    "    \n",
    "    return med_rr_int"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "- ```calculate_template``` - calculates a template beat shape"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 109,
   "metadata": {},
   "outputs": [],
   "source": [
    "def calculate_template(sig, beats):\n",
    "    \n",
    "    # find median rr interval\n",
    "    med_rr_int = calculate_med_rr_int(beats)\n",
    "    \n",
    "    # find no. samples either side of beat\n",
    "    tol = int(np.floor(med_rr_int/2))\n",
    "    sum_waves = np.zeros(1+2*tol)\n",
    "    no_beats_used = 0\n",
    "    for beat_no in range(0,len(beats)-1):\n",
    "            min_el = beats[beat_no]-tol\n",
    "            max_el = beats[beat_no]+tol\n",
    "            if min_el < 0 or max_el > beats[-1]:\n",
    "                continue\n",
    "            curr_samps = sig[min_el:max_el+1]\n",
    "            for i in range(0,len(sum_waves)):\n",
    "                sum_waves[i] += curr_samps[i]\n",
    "            no_beats_used +=1\n",
    "    templ = sum_waves/no_beats_used\n",
    "    return templ"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "- ```calculate_cc``` - calculates average correlation coefficient between template beat shape and individual beat shapes"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 110,
   "metadata": {},
   "outputs": [],
   "source": [
    "def calculate_cc(sig, beats, templ):\n",
    "    \n",
    "    # find median rr interval\n",
    "    med_rr_int = calculate_med_rr_int(beats)\n",
    "    \n",
    "    # find no. samples either side of beat\n",
    "    tol = int(np.floor(med_rr_int/2))\n",
    "    \n",
    "    # calculate correlation coefficients for each beat\n",
    "    sum_cc = 0\n",
    "    no_beats_used = 0\n",
    "    for beat_no in range(0,len(beats)-1):\n",
    "            min_el = beats[beat_no]-tol\n",
    "            max_el = beats[beat_no]+tol\n",
    "            if min_el < 0 or max_el > beats[-1]:\n",
    "                continue\n",
    "            curr_samps = np.zeros(1+2*tol)\n",
    "            for i in range(0, 1+2*tol):\n",
    "                curr_samps[i] += sig[min_el+i]\n",
    "            temp = np.corrcoef(curr_samps, templ)\n",
    "            curr_cc = temp[0,1]\n",
    "            sum_cc = np.add(sum_cc, curr_cc)\n",
    "            no_beats_used +=1\n",
    "            \n",
    "    # find average correlation coefficient\n",
    "    cc = sum_cc/no_beats_used\n",
    "    return cc"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "- ```compare_cc_to_thresh``` - compares the average correlation coefficient to a threshold to determine whether the signal is of high or low quality"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 111,
   "metadata": {},
   "outputs": [],
   "source": [
    "def compare_cc_to_thresh(cc, thresh):\n",
    "    \n",
    "    if cc >= thresh:\n",
    "        qual = 1\n",
    "    else:\n",
    "        qual = 0\n",
    "        \n",
    "    return qual"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "- ```assess_qual``` - assesses the quality of a 10 second window of ECG signal"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 112,
   "metadata": {},
   "outputs": [],
   "source": [
    "def assess_qual(x, fs, thresh):\n",
    "    \n",
    "    # filter ECG\n",
    "    sig = filter_ecg(x, fs)\n",
    "    \n",
    "    # detect beats\n",
    "    beats = detect_beats(sig, fs)\n",
    "    \n",
    "    # assess feasibility of beat detections\n",
    "    feas = assess_feasibility(beats)\n",
    "    if feas == 0:\n",
    "        qual = 0\n",
    "        return qual\n",
    "    \n",
    "    # create template beat shape\n",
    "    templ = calculate_template(x, beats)\n",
    "    \n",
    "    # calculate correlation coefficient\n",
    "    cc = calculate_cc(x, beats, templ)\n",
    "    \n",
    "    # compare correlation coefficient to threshold\n",
    "    qual = compare_cc_to_thresh(cc, thresh)\n",
    "\n",
    "    return qual"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "\n",
    "---\n",
    "## Extract one minute of ECG and PPG signals from the MIMIC database"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Extract data"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "id": "A0YsdFikpHWB"
   },
   "source": [
    "_These steps have been covered in previous tutorials, so we'll just re-use the code here._"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 113,
   "metadata": {
    "colab": {
     "base_uri": "https://localhost:8080/"
    },
    "id": "2geoFoDBpHWC",
    "outputId": "29847fb7-2f05-4762-b311-e40ce5a6136c"
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Metadata loaded from segment: 88995377_0001\n",
      "60 seconds of data extracted from: 88995377_0001\n",
      "Extracted the PPG and ECG signals from columns 4 and 2 of the matrix of waveform data.\n"
     ]
    }
   ],
   "source": [
    "# Specify the segment of data to be loaded\n",
    "start_seconds = 20 # time since the start of the segment at which to begin extracting data\n",
    "n_seconds_to_load = 60\n",
    "\n",
    "# Load metadata for this record\n",
    "segment_metadata = wfdb.rdheader(record_name=rel_segment_name, pn_dir=rel_segment_dir) \n",
    "fs = round(segment_metadata.fs)\n",
    "print(f\"Metadata loaded from segment: {rel_segment_name}\")\n",
    "\n",
    "# Load data from this record\n",
    "sampfrom = fs*start_seconds\n",
    "sampto = fs*(start_seconds + n_seconds_to_load)\n",
    "segment_data = wfdb.rdrecord(record_name=rel_segment_name,\n",
    "                             sampfrom=sampfrom,\n",
    "                             sampto=sampto,\n",
    "                             pn_dir=rel_segment_dir)\n",
    "print(f\"{n_seconds_to_load} seconds of data extracted from: {rel_segment_name}\")\n",
    "\n",
    "# Extract the PPG signal\n",
    "sig_no = segment_data.sig_name.index('Pleth')\n",
    "ppg = segment_data.p_signal[:,sig_no]\n",
    "sig_no2 = segment_data.sig_name.index('II')\n",
    "ecg = segment_data.p_signal[:,sig_no2]\n",
    "fs = segment_data.fs\n",
    "print(f\"Extracted the PPG and ECG signals from columns {sig_no} and {sig_no2} of the matrix of waveform data.\")"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Plot data"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Full duration of signal"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 114,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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DkNbZRXguOPa06kjQL0zHz063X9JlDSurJEckIzexo5N8ow75BdfTMz2eDSiWh5xY1MjX66/Hnj66Whbdz2NHJk+kttpp0jRxJbAmDHpZu8JJ0SdceyDXnnl5Nrmz09CdYcNSyyI7bcHHnss6rhjWWN5dNeK7rdVlWM8sX744cC//51uKfT3Jx2LWv7xNad1wmq6uAzjyJWXX04UlDoSjuVPG1DECowoGuk/9li6daby859H35MnD+1EFixIynX6dOCpp6Jr/MhHont2yCHRvuefT+67em1xB7fhholLI60OHH98cm/jexeXwwsvROcFhroZVdR6o1rmRIlyjMs6juBS6018T9Msiueei+67nncaU6YM/U/NL66z6n1+6aVo+1vfis4Tz+k99RRw1VVD84vziKMf118/6QcWLEjqzfHHA48/ntTlrLalz+WNGZPuIjv11EgpqdazSzwtStvZjBqVjJri0dikSUNv0P33Jzc+drmo4bUxzzwzNLwQSBpebL7OnZuMrKZPB448MlFGd96ZKA81Skit6LFyS5sQGzkyaUSm0ZtOlmn95JPJdm9v+0SlihohpaOOzlTuvTdShln70joloqTR2TJmDPDnP7dP6KcxYUJ7+atuoA02AJ59NlJ0Y8dGYclxZ6dy++3J/QGyr13lK1+JRoif+ETS2cSWqDpH1t8PrLtu8lu9Z2p9VF1+hx8eXc9HP5rUIX2eDGi/t+99b3QdsfWmDpTuuSdSHGXZeOP2vNV6c911kbIaNixRLLGisx1B33tvYm2p6O32jjsSa1dtRz097fVLLe+5c5NBWpoLOka9Z8OGDQ14iFHbVlzX09rRnDlJn6Ra6V5g5q77bLXVVuyKd95hvuQS5uXLo9/R+GtousWLmS+9NElnyx//yPz88+Xl22qrSJ4XXmD+wx+i7UMOMR9z4olRumnThu7797+Z77yzvDwrGgsWROWexj//yfzoo/l5qHUqq34xM8+YwTx/fjk5mZnnzmX+y1/S991wQ5L3ffdFnyayfDnzxRczL1lSPo85c5hvvz3aXryY+bLLirfbLHbfPbp/11zjJr+FC5mvvtpNXnkAmMkZfSpxVjhLBzN16lSeOXOml7wvuyyawyg6evXFs88CN90UjT6XLwd+9rPIv24ywd95Bzj33Cik1NeLTgR7rrwycou8733JyFyPmhI6g899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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "t = np.arange(0, (len(ecg) / fs), 1.0 / fs)\n",
    "plt.plot(t, ecg, color = 'blue', label='ECG')\n",
    "plt.xlabel('time (s)')\n",
    "plt.ylabel('ECG')\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Just a short segment"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 115,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.plot(t, ecg, color = 'blue', label='ECG')\n",
    "plt.xlabel('time (s)')\n",
    "plt.ylabel('ECG')\n",
    "plt.xlim(0,5)\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "---\n",
    "\n",
    "## Assess signal quality of this sample data"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Using the functions defined above:"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### filter the ECG"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 116,
   "metadata": {},
   "outputs": [],
   "source": [
    "sig = filter_ecg(ecg, fs)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Plot the result"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 117,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAY0AAAEGCAYAAACZ0MnKAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjMuNCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8QVMy6AAAACXBIWXMAAAsTAAALEwEAmpwYAAB9XklEQVR4nO19eZwcVbX/93b3zGSykX2d7AlkARIhsm8SBHEBRBAQZZHFKPCeIAoKD/Up7+HT31NBFhEQERSRNSrgwo5CSMIjZJksk2SSDNkn62S2Xu7vj1On63Z1Lbeqq7unQn0/n3x6errSfef2rfM933POPVdIKREjRowYMWLoIFHtAcSIESNGjOggJo0YMWLEiKGNmDRixIgRI4Y2YtKIESNGjBjaiEkjRowYMWJoI1XtAZQDQ4YMkePHj6/2MGLEiBEjMli0aNEOKeVQr+sOSNIYP348Fi5cWO1hxIgRI0ZkIIRYr3NdHJ6KESNGjBjaiEkjRowYMWJoIyaNGDFixIihjQMypxEjRoyej3Q6jZaWFnR2dlZ7KB8q9OrVCw0NDaipqQn0/2PSiBEjRlXQ0tKCfv36Yfz48RBCVHs4HwpIKdHa2oqWlhZMmDAh0HtUNTwlhHhICLFNCLHU4XUhhLhTCNEkhHhfCHFEpccYI0aM8qCzsxODBw+OCaOCEEJg8ODBJam7auc0HgbwCZfXzwQwxfh3NYB7KzCmGDFiVAgxYVQepc55VUlDSvk6gJ0ul5wN4BFJeBvAACHEyMqMLkaMGDFiWFFtpeGF0QA2Ks9bjN8VQQhxtRBioRBi4fbt2ysyuBgxYsSw4nvf+x5Gjx6NWbNm5f/t3r0bAPDOO+/gpJNOwiGHHIKpU6fiyiuvRHt7OwDgxRdfxFFHHYWpU6di1qxZuOCCC7Bhw4Yq/iX26OmJcDsdZXtqlJTyfgD3A8Ds2bPjk6VixIihDSklpJRIJMLxo6+//nrceOONBb/bunUrzj//fDz++OM49thjIaXEU089hX379mHt2rW47rrrMG/ePEybNg0AMG/ePDQ3N2Ps2LGhjCks9HSl0QJgjPK8AcCmKo0lRowYBxCam5sxbdo0fO1rX8MRRxyBjRs34qtf/Spmz56NGTNm4Lvf/S4AUgfnnnsuAOC5555DfX09uru70dnZiYkTJ2p/3t13341LL70Uxx57LADKLZx33nkYPnw4fvSjH+E73/lOnjAA4KyzzsJJJ50U4l8cDnq60pgH4FohxOMAjgawR0q5ucpjihEjRsj4+teB994L9z1nzQJ+9jP3a1auXIlf//rXuOeeewAAt99+OwYNGoRsNos5c+bg/fffxxFHHIH/+7//AwC88cYbOPTQQ7FgwQJkMhkcffTRtu/705/+FI8++igAYODAgXjllVewdOlSXHrppbbXL1u2rEiZ9FRUlTSEEL8HcAqAIUKIFgDfBVADAFLK+wA8D+CTAJoAtAO4vDojjREjxoGIcePG4Zhjjsk/f+KJJ3D//fcjk8lg8+bNWL58OQ4//HBMnjwZjY2NeOedd3DDDTfg9ddfRzabxYknnmj7vnbhKV20trZizpw5aG9vx9VXX93jyKSqpCGlvMjjdQngmgoNJxiyWSCZrPYoYlQbzc3AkiXAZz5T7ZFEEl6KoFzo06dP/ud169bhJz/5CRYsWICBAwfisssuy+9nOPHEE/HCCy+gpqYGp512Gi677DJks1n85Cc/0f6sGTNmYNGiRTj77LNtX3v33Xcxc+ZMDB48GO+99x5+8pOfoK2trfQ/MmT09JxGz8aiRUDv3sAHH1R7JDGqjXvuAS5y9YFi9HDs3bsXffr0wUEHHYStW7fihRdeyL920kkn4Wc/+xmOPfZYDB06FK2trVixYgVmzJih/f7XXnstfvOb32D+/Pn53z366KPYsmULvvWtb+H2229HY2Nj/jWuqupp6Ok5jZ6NtWuB7m6gpQUYbVsJHOPDgo4OYP9+QEog3rAWScycORMf+chHMGPGDEycOBHHH398/rWjjz4aW7duzSemDz/8cAwbNsxxo5ya0wCAZ599FuPHj8fjjz+OG2+8Edu2bUMikcBJJ52Ec889FyNGjMDPf/5zXHLJJdi3bx8GDx6MsWPH4vvf/355/+gAEBQBOrAwe/ZsWZFDmB57DPjiF4HXXgN6YJVDjApi7lzgl78EOjuBurpqjyYSaGxsLKgWilE52M29EGKRlHK21/+Nw1OloLubHuMunTHitRDjQ4KYNEoBG4quruqO40DEli3An/9c7VHoI52mx5g0YhzgiEmjFDBZxKQRPi64gCqRdu2q9kj0EJNGDMaaNcB6reO2I4mYNEpBrDTKh7176XHFiuqOQxdRC09JSf9ihI/OzuisgwCISaMUxKRRPhx8MD0uW1bdcegiakrjs58FQuqzFMOCA5yQ41VTCqJGGhs3Al/9KpDJVHsk3mhooMfly6s7Dl1ETWk891y1R6CP7u7o3GMAkMvFpBHDAVEjjcsvB+67D3jzzWqPxBu5HD3GSiPG++/Tbvsy4M4778S0adNw8cUXY968ebjjjjsAUHtz3u398MMPY9MmH31SfZBGc3MzDj30UNvf19fXF7RXf+SRRwAAbW1t+MpXvoJJkyZhxowZOOmkk/IbBrdu3YovfOELmDhxIo488kgce+yxeOaZZ5wH8PWvA7//vf7fhnhzX2mImne5bx891tdXdxw6YDUUK40YZcQ999yDF154IX9e9llnnVV0zcMPP4xDDz0Uo0aN0nvTXA6ZdLpk4zpp0iS8Z9PF8corr8SECROwevVqJBIJrF27Fo2NjZBS4pxzzsGll16K3/3udwCA9evXY968ec4f8vOf06OPbgYxaZSCqFVPcVuCKGw+Y9JoaSGy69evuuPxQqw0Ioe5c+di7dq1OOuss/DlL38ZAwcOxMKFC/GLX/wif82TTz6JhQsX4uKLL0Z9fT3eeustLF++HDfccAPa2towZMgQPPzwwxg5ciROOeUUHHfccfjniy/irDlzcEomY3vdokWL8OUvfxm9e/fGCSec4GvMa9aswfz58/HYY4/lz/6YOHEiJk6ciJdeegm1tbWYO3du/vpx48bhuuuuC2fCDMSkUQqiFp5i0shmqzsOHah5l/b2mDQOdLj1RmeF7HcNePRGv++++/Diiy/ilVdeyRt1K8477zz84he/wE9+8hPMnj0b6XQa1113HZ577jkMHToUf/jDH3DLLbfgoYceAgDs3rULr91/P9KJBE6+9lrb6y6//HLcddddOPnkk/HNb37TcXxr1qzBrFmz8s/vuusu7Nq1C7NmzULSpknqsmXLcMQRR+jOTmDEpFEKokYa+/fTYxQS4eoYozDeqK0FRpS6NPeAvl4rV67E0qVL8fGPfxwAkM1mMXLkyPzrF5x/Pl23bp3tdXv27MHu3btx8sknAwC+9KUvFTRGVGEXnnINNVlwzTXX4M0330RtbS0WLFig/f+8EJNGKYiaoWClwV5xT0bUSCOqSiOT6Rmk4dYbnfvIHXZY1UOrUkrMmDEDb731lu3rfXr3dr1u9+7djk0OdTBjxgwsXrwYuVyu6GjaGTNm4Kmnnso/v/vuu7Fjxw7Mnu3ZTspUcxqIq6dKQUwa5YNKFFEIp0U1ER6FtcCokvPQr18/7DOM6iGHHILt27fnySCdTmOZWuFnVP0dMm6c7XUDBgzAQQcdhDeNCsbHHnvM11gmTZqE2bNn47vf/S642ezq1avx3HPP4dRTT0VnZyfuvffe/PWu7dXVCi8f1WExaZSCqBkKNr5R8NxjpVE+8LoFokUaVXIeLrvsMsydOxezZs1CNpvFk08+iZtuugkzZ87ErFmz8K9//cu82CCN2mTS8bpf//rXuOaaa3Dsscei3qWSkXMa/O/OO+8EADzwwAPYsmULJk+ejMMOOwxXXXUVRo0aBSEEnn32Wbz22muYMGECjjrqKFx66aX40Y9+ZP8B6n3lp6RYSnnA/TvyyCNlRXDGGbT38/zzK/N5pYL3qv7lL9UeiTfOOccc7/Ll1R6NN4YNo7F+//vVHok3WlvNud26tWrDWK77vS5YQP9aW8s7oDCwfz+NdeHCao/EFcuXL5eyvd1cB489JgEslBr2NVYapSBq4SlGFDz3qCmNKKlONX4dhbllRGGsvCk1CjvCAyqNmDRKQVRJIwohiaiRRpTCU+q501FYC5yoj0Jui0kD6PnEod5Xmzdr/7eYNEpBlEhDNQ5RMBRxIrx86EGkIXUMK1cbRcF5iABp5Oc8Jo0qIEqkwa3GgWjcfFFSGlJGV2lUcW579eqF1tZWb+Lg16PgPPRw0pBSorW1Fb169Sp0GHzYsHifRimIknepkkasNMKFOtYorIUeojQaGhrQ0tKC7du3u1+4bRsZ4PZ2oKOjMoMLirY2oLWVfl6xoke2n+/VqxcaGhoK1YUP5yEmjVIQpd5Te/aYP/d0zx2gMaZS9NjTx6sa3iiQhpoIryJp1NTU5BsFuuKII2heTz4ZePXVso+rJPzqV8DVV9PPmzcDI0ZUdzxuCOiYVZUGhRCfEEKsFEI0CSFutnn9ICHEn4QQi4UQy4QQl1djnI6IUnhKJY2oKI1evcyfezKiRho9RGlog8e4c2d1x6EDVQn19LkNGAKuGmkIIZIA7gZwJoDpAC4SQky3XHYNgOVSypkATgHw/4QQtRUdqBuiRBpRDE8xafT08JS6WS5qpNHTCVlK8/vv6aEpIFqkoY4vCqQB4CgATVLKtVLKbgCPAzjbco0E0E9Qs5a+AHYC6DmrPEqkEcXwFPcZ6unjjZVG+aA6DD19HQCFpKE6Ez0REQxPjQawUXneYvxOxS8ATAOwCcASAP8upcyhpyBKpBErjfIhykqjp68FdXw9fR0Ahd9/T5/bqIWnANi1erTWqJ0B4D0AowDMAvALIUR/2zcT4mohxEIhxELPaoywwGQRBUOhjjEKHls6HSuNciFKO8KjVHoNRCs8FUHSaAEwRnneAFIUKi4H8LTRLqUJwDoAU+3eTEp5v5RytpRy9tChQ8sy4AJks6bn093dI2uyC6Auip6+mIFoJsJra6NBGlFSGlEmjZ4enuLvnqsUNVFN0lgAYIoQYoKR3L4QgPWEkQ0A5gCAEGI4gEMArK3oKJ3AE963Lz329AUStdhwFMNT/ftHgzSi5A3z+ITo+esAiNbcsh3o1SsaOQ0pZQbAtQD+CqARwBNSymVCiLlCCD7k9gcAjhNCLAHwEoCbpJQ7qjNiC1RDAfT8vAYvkJqanr+YgWgqjX79okEa6tz29LWgGraevg6Awu+/pzuSPJ/19dHZ3CelfB7A85bf3af8vAnA6ZUelxZ4QfC5xVEhDWv7gJ6KqCqNLVuqOxYdZLM0t52dPd8Qq+u2pxthIJpKo64uMuGpaCOKpJFMktLo6YYCiGbJLSuNKOS3oqI0eHxRURodHQf83MakERRMElEijVSK/vX0xQxEKzylOhBq88KeikyGQhJANMYKRIs0OGTd05VR1HIakYc1p9HTY9nZLBFGlJRGVMJTbHh796bHnj6/UVIaVsPW01VcZ6dpE6I0t7HSqACimAiPmtKIWngqKiTHOQ0genOb6zl7e22hKo2efp/FpFFhRDGnwUqjpy9m7jcUFSPMa4FDPj3dEEc1PKU+76no7o5OGb5KyHF4qgKIImkkk7438lQFvICjpjTYEPd0kosyaURhbqMY+ouVRgXApBEVr0LNaURpMavPeyqiqDSiMrdRWwvZrJnbitJ9FpNGBcDKIkreZVQS4VHzLqOmNLJZankC9HzDZs1pRGHt8jro6Y5kTBoVBi+IKFXMRCURrm46Up/3VFhJo6ePN5Mh5yGKqrOnE3JUQ39xTqMCYNLo04ceo7CYeXNfVBZzTQ2dsdzTjbA1PBWvhfAQxfBUVJRGvLmvwohaHJtzGlFIhPP4eLw93QhHUWlEJVQZxfBUXR01WIwSIcekUQFYw1M93bBFqeRWJY1ksucbiqgpDdWBiMpaiFJ4KpmknFHU5lYTMWkERRQ9oKh4l1FVGlFcC1ExbFHJb6lVij09PGWdW03EpBEUUYu1RjERHiWlUVNDYwV6PslFKacRE3L5kE5TzrCmxtd/i0kjKKIqm6OwmK1Ko6cbinSa5jVlnDTQ08cbxfxWFEJ/uRx1M4hSeEpdt5qISSMooiqbo2QoIhSeytXUYsnyCCmNqHjDUbrP1HUblfAU32M+EJNGUFhbXcSGIjxEMDzVnq7Bbf9p3HzxWggPUQpP8fcelbmNSaPCiJIHBMSJ8HIinUZG1KCj21AaUZjfqBzIFaXwlLpuoxCeSqdNx8wHYtIICmOBnHxGBDwgIFqJcB5fVJRGOo1cIoWubESURhRLbqPgnBljy4kkZByeilEEY4G8tyIi4alsNnreZVRyMNkssqIGaRkBpcFt56MSQolgeOqhR1LYsDkCcxsnwisMY4F0w2j81pMXMxAtpRG18FQmg2wihQwioDR4bFGrpItQeGr7rhTa07Wx0ohhQSaDXDIihgKIVvIzaonwTAY5JJFFBJSGtcKnJ48ViGR4Kp1LIiMicJ/FOY0KI5NBLpGKhqEA4kR4OZHNIisi4kCoFT5RUp21EVD0xtx25VJIR4E0YqVRYWQykMkUJBKQQvTsxQyYOY0oGQreZd3T5zaTQVZExIEwxvbWghQWLYmAYeONk7xruScTcl5ppJBGRMJTcU6jgshkkBNkJGQyAt6wqjRyOfrXUxG1RHgmg6xIRkNpGHO5bkMSW1ojQBq8bpPRIeTunLEWevJYgeK51URVSUMI8QkhxEohRJMQ4maHa04RQrwnhFgmhHit0mN0RDYLmSAjIRPR8IYLpGhPHm9Ew1NRUhrduRTSMkKGLULrtjubigZpcE4jKkpDCJEEcDeAMwFMB3CREGK65ZoBAO4BcJaUcgaA8ys9TkcYiXAgOkqjM5PCK28aMr8ne5gRTIRnEa2cRlqmkEYElIa1r1cE5rY7Z6yFnjxWIJI5jaMANEkp10opuwE8DuBsyzVfAPC0lHIDAEgpt1V4jM4wEuEAIEWJhu2VV8p/82YyaG5J4U8vRsdji4zSMMJTUVIaXdkUumUESCOC4amubAoZRMPZiVpOYzSAjcrzFuN3Kg4GMFAI8aoQYpEQ4hKnNxNCXC2EWCiEWLh9+/YyDNcChTRypSiN994DTj0VuOuu8MZmh2wWGZkk7xLo2cYigkojAyU81ZNJTikL7ZYRqaRTveEIzG13LolMlEJ/EcppCJvfScvzFIAjAXwKwBkA/kMIcbDdm0kp75dSzpZSzh46dGi4I7VDNptPhOcSJSyQ+fPp8f77abduuWAYtjxp9OQFHbVEeDZbGJ7qyeNVQihpGYFKunQa2WQNduyO0Nxm4/BUudACYIzyvAHAJptrXpRS7pdS7gDwOoCZFRqfOzIZ5EQIifCFC+lx5UrgzTdDGpwNMhmkpWLYSjEW5VZyEQxPZUS0lEZXNoV0RMJT6zamMPPIEsNTe/cCq1eHNy47qHNbaiL8d78DbrklpIE5IGqJcAALAEwRQkwQQtQCuBDAPMs1zwE4UQiREkL0BnA0gMYKj9MeRusIwFAaQQ3FwoXAMcfQz2+9FdLgbGCQRsnhqbfeAoYPB159NbShFSGC4aksQiq5LXcptFI9VXJOY/t24I9/DGlgDjAUcslz+x//ARx8MPD974c3Nivy1VNJZGQJ61ZKGuf//A+wf3+IA7QgajkNKWUGwLUA/goigieklMuEEHOFEHONaxoBvAjgfQDvAHhASrm0WmMuQBiJ8I4OYOlSYM4coF8/4IMPQh6kgmy2UGkEXdAPPkiL+m9/C29sVoSlNLZvB774ReCww4CWlvDGZ4URnio5Ef6nPwFDhgBr1oQ3NisUw9ZVKmnccAPw+c8DGzaENDgbpNNIo6b0dcsO2fe+Vz5DbIytM5uinEbQddvYCKxaRe9XZkcyajkNSCmfl1IeLKWcJKW83fjdfVLK+5RrfiylnC6lPFRK+bOqDdYKa04jyAJZupS+uCOOAEaPBjZZo3MhwdjMV3IivKMDeOIJ+rnMoTQAyIoSlcazzwKPPUbzXObxhuINv/gisGsX8K1vhTc2K7jVhRF3l0HH2twM/P739PPbb4czNjtYiwyCroXmZnLMAGDdulCGVgRjLil3WEJ46pln6DGRAF5/PaTB2SCTwV9fTuHeX0VEaUQeRusIABSmCrJANhrFYxMnAqNGlU9pcIJOlpgIf/VVYN8+YNYs4J13gK6u0IZYAGNsvQ9KlVZk0NRk/rxyZQgDc0Amg0wYDQvfeQcQAnj6afI0y4GCstAURDYbrADj4Yfp/9XVld0bLpmQW1tJdX7yk/S8XKTBzg6SyJYSnnrtNbrHjjiCfi4X0mls35XCz++JSaMyUBLhuaDhKVYWI0eS0igXaSg9cUpKhPPNdvXVRBicxA8bxngzSKErV4LMb2oCpk4lUl6xIsQBWpDNlm7YOjuBxYuBU06h52Umje5ssrTE/erVwLhxwEc/Wl6lkU4Xzm2Q+4y/eyaNtWvDGZsVyrpNlxKe2rgRmDQJOO44usfKVVVpVXGaiEkjKBSlETg8tXkzhV+GDiWlsXlzeRKhapllKUpjwwZKnJ15Jj1ftiykAVpgjC2HBLrSJXhsTU3A5MlEHOUkjUwGGVliCGXxYiLyz3+enjc3hza8AliUBoBga7e5mUjj2GOBd98tq+pMo6a0uW00amdOOAHo27d8pKGGp4Lu05CSSKOhARgzBmhvp8qvcsCY2/w60ERMGkGhVk8FVRqbNwMjRlDscvRoMho7doQ8UBRs6CrJY9uwgRbyaGMP5ubNIQ3QAqOEFRBoTwckZCkpocyksXJl+SqTjOopQEAmEsHGu2ABPX7qU3TgULlIwxhbZ6ZE7339emD8eGDmTOrmWq7kfRgbJxsb6eS/ceNIdZY5PEWkEdAm7NlDifoxY8iRBMqX67SG/jQRk0ZQZLP5hZwTAQ3bpk3mwijnAlHKLEvy2DZuBMaOJbUxdGhZFzOruI7ugDff1q108zFpdHSYOaSwkclQ4hMl7NlZv54MW0MDGeMyK42SSKO7m777ceMq40DAOIIgkQg2t+vWEVkkk8CECWUPT2WRRDqXIifFb2iJq/waGkybUK65tYb+NBGTRlCoiXARUIpu3kz5DMC8+cqR11BIIxSlAdC4y2gouJy5vSvg3HISfPJk4JBD6OdyhaiMnAZQQqhy0yaaUyGINMrsDXdnS1CdGzeSMRw3riKGLR9SDVpJt2WLeZ+x0ihHnsAanlJ+pw0mjTFjzDGXWWnEOY1KoYA0SkiEV5A0SopjZzI0trFj6XmZSUMaHYT3dwc0wkwakyaR1waU9+aTxtkqQZXG5s2mAa6A0uhIl+BArF9Pj+PHV8ywASV0k96yhcLAABFdeztVVIUNJTzF6yEQIQOVURpxTqPCyFA7bCBgeKq7m/IXvDB4UZdjgVhq8wH4X8ybN9P7MGlw4r4cSKfzSmN/Z4mVaQ0NtIMdoJBVOWAkwoESDJuqOsePB3buLE8CVMlpBA5VMmmMG0d7H/r1qxxp+B2rlIWkMWwYPW4rQ8NsJTzVnQt4n7W0kNocOZLmtW/fOKdxwCCbJYUBWiS+F8eWLfTIhqKmBhgwoKyJ8JJCErzrV1UaW7aUp8+SouLaOgIa4a1bgf79KU/Qpw/dfOUiDWO3PVBi+bWqNADTOIcJu5yG3/ltbibDxgpu1KjyGTYlPBVIxe3bR/ksdhyYNMrRP81acgsEC0+NHGkeb1suRS9lnNOoOBSlkQ0Sx+aFwIYCAAYPLqts7iolp8GyWc1pZLNlIzneA9MWVGls3WoaCoB+LqPSKEiE+10L+/eTqmAHgo1xOVqfcCWdLDGnMXIkUFtLz8tJGqWGp9g5Y6XBHbDLQRpqTiMXUMW1tJjfP1C+uTUqCeOcRiWRLwsFkYffxaFu7GMMGVJWpVFyeAowx8uP5fCClHLmfe0p8or8lsvakQYbkDBhjC2TK6FNvtWB4HGXI4SiGLbAa0FNLAP0cwVII5CKY0ehEqShKo2gc6sqTqB8pMHOQ5zTqCCUxRwoEW6nNMpFGmHU5m/dSpJ54EB6XuYSYQ5P7e0IKPO3bSskjREjyqM0lONTAcOwBVWdbIgrEHcviTSshMyGrRwVSUp4KhAhW5XGkCH0WEbSKKnjsXVumZDDnltlHeR80kBMGkGhkEagA1c2baJNfeqBUUOGlDU81Z0pISTBi1kYZ2eVW2kYpLFvf0CZv3WraXyB8oWn8uGeEkpumXiZiPv2pQ1+ZRxvyUqDjTBA4+7qomaLYUNVGkHm1koa7Pj0RBWXyZDTaHV2OjqAtrYQB4p8GyEap4D00ek2Jo2gUDb3BUqE825w9csaPLis4amSlYY13AOUzRvOJsi77MgE8NjSaSJf63hbW8M/dChvhHmjZwmqk4lYCCK8Mlf4BKqeyuVoLVhJAyib6syTRtCCk2SS7i3G0KFlD08FmtsdO0hRqOu2XOE0ZawAIBP6IaqYNIJCDU8FURpqiSVjyBCqIW9vD2mQBpg0siWUWVpJo74e6N27bCSXLzIIMl6+wSpBchyeypWoNOrqzNAfUD7SsPOG/Yy3tZWuV0mjnBVJSngqUDfpLVtofAnF1JWZNAKHp1hZVpA08qG/ZEwa5UcBaQTwgNSNfQyOt4Ydogojp7FlS+FiBsqauOfwVKDxsrG1ynwg/JCPNTwVVGnwbnBGmcNpgUMo1sQyUPbkcknOmVUVAeUjjWyWWp1AlDa3VVAauVhpVADWnEYQQ6EmwYHykQYrjXRA7zKXK04sA2XNwRSRRhCPzZrTUF8LC0waRvVUNshGTzsHogLhqUCGjXME6lrgdVvm8utABSfW/AtAhrhMc8vGN5BCtpvbSpGGiHMa5Uc2m98F7DsRnk7TorUaCo67hn3z5UkjoKHYtYuut958ZVQaZjlzgJvPzmPjn8Muuw1LaVgdCCaNMlbNlEQa6lrgdRu2YTM2oOWSFEIJ5JzZkcawYeTshN31OJOhfToo0dmpBGkUJMKRJ2YdxKQRFJlM3qBl/IaneHE4KY1ykUbQ8JTdYgbKmrjPIgSlYXfzhT1e5awSIKDSsMtvDR9O31HYFUmlVvjYkQZXJIU9t4ZRTwd1zuyS9gCthWw2/LnNmD3TAt9nvXqZx9IC1M2gV6+y5zSyYZGGEOIKIcQ3lecfCCH2CiH2CSG+GmiwBwoymeCL2W5jH1D+8FTQzX1OpFGBnEYgpbFtG91offuav+vbl5LNZbr5ullp+HUgOjqA3bvtlQYQfhjFrnrKz9rdsoWKIFTDBtBaKPPc+j5CdedOe4VcLu89my0tPGUtawfo56A5mF27nI+LtYSnMiEqjbkAHlKeb5NS9gcwFMBF2p9yoMHok58OupjtNvYBwKBB9Fgmb7hk79KONPbsCVbGumABGUw7WPNFxu+04XTzldGwZYLmNKzltoygpJHJAA89RA0xHV6XQkAiEXxuR4wonFuADFuQdZvNAn/+s30YjkkjR95w2m94ysnZKWOeoEhp+FXIVoIDgpPGz38OzJlDbWpsxqqO008rES/SSEgpVbf3jwAgpewEUK/9KQcaFCMMBFjM3P7caihSqfI0LVQWiEQCUojwlAbgXxnt2EHHhP7qV47jzZRSPWUtD2YENWxuKApP+XQgrBv7GEET9889B1xxBXDbbfavlxpCsauiA4IT8tNPA5/5DLBoUfFrhjPCLTkyfs/dtgulAWVVcZxQDn3dBpnb5ctpvuyOW7DkNPy0EvEijYPUJ1LK/wIAIUQCwGDb/3Eg4XOfszdsbISNnvm+F3NLCxGE083n1whLCVxyCfDyy/avKyEJIEA7hq1babzqPgIeK+DfEDc10XytWuU43qKcRjVvvs2biczfeMN2rIASQvEbqgxbafAen8ces389my2dNJy84SCE/N579Gh3fojFG/Z9hKoTafTU8JRdbgsIvm5Xr6ZHO9KwhqdkeKTxNyHED21+/58A/qb9KVHEokXkBV19dfFrloqZjN/FvHEjHbpkt3U/SJ5g927gt78lKWoHu5rsIEY4YVkuQZUGH7fpdDqdEp7Kn9rmN6ehltsyguZgfvtbCsM98IDtWAEE7w7gpDQGD6YQkF/S4OtbWuy75CploaGSBisNv9VeS5bQo4th4zWQDktpBO0/tW0b8NOf2od7gNLmtrubxmNdB0Aw0pBSizTMRHh44alvApgkhGgSQjxl/GsCMBnAjdqf4gAhxCeEECuN97/Z5bqPCiGyQojzSv1Mbdx/Pz0efnjxaxbSSMuUv/OAre2PVQSpSFL7P9mVEVrCab7LQp0896BKY80aenQ6nc4up6GbN3HaUwIE99j+/nd6tDOWlrnNwmfDws2bqcU457MYqRTNr9/wlHr9P/9Z/LpdWajuWuD2LE5KI52m8yv8gEnDjuAsIZR0zqezs2ULFUT071/4+9pa4KCD/K+FBx8EbrgBOOoo6rVlhV14SnctMME5kcb+/c45QDts3mySm4PzoI4zG1Z4Skq5X0p5EYDTATxs/DtDSnmhlLJN+1NsIIRIArgbwJkApgO4SAgx3eG6HwH4aymf5xtPPEGPdglFO6UB6C+QjRvNcymsCOINq3sPli4tfj0spWFF0H0lrDSamx0ToIGVxs6d9D04kdzevfY3vNv7vfIK/Wzn9dtVofhVGtbd4IwgG/y2bjXPudi5s/h1uxCK7rplJeFEGnyNLvbtMx0HjRBKOhcgPGWXtOfx+iUNvn75cmDlyuLXlbn1TchOipPHqn6+DtTQr05OI8SS2zOEEOdJKddKKf9k/FsjhLhYCPFx7U+xx1EAmoz37gbwOICzba67DsBTAMqwhdMBnZ0U8gHsvyhLO2xfvfOldFcaQXIaqtJ46aXi1+1yGn5lvpvS8HvzMWm0t9v/31KUhlPSHjBvPj/z29hozpWd128XnvKrNOzi2EBw0pg6lX62I41SQihOVXRAMNXJDk4ioeUNd+d8rlsnZwcINrfq9U5zG7RUPGzS4NBU//5ahBya0gDwfQB2hb4vgfIapWA0gI3K8xbjd3kIIUYD+CyA+7zeTAhxtRBioRBi4Y5t24Cjj6ZKkiDgBTFsmOm5qrC0juBmdVoLescO8nTdwlN+mxYyadTW2ntApSgNKZ3DPXV1tCiDkAaHYxwSoIGVBt/YdjmNIDcfE4yTkbEqjSCJcDtDAQTrP7VtG6nY3r3tN6+FQRp2SiNI4p7X6pFHunrDvAa6/YanNm2yHysQTGnw5jvAhTQChqfCJo2mJrIHRx1V8ZxGbyll0UillFsA9NH+FHvYaEZYYxU/A3CTlNJz5qWU90spZ0spZw9JpYB33qFEdhCwoZg6lYymdYE4had0FrT12FQrgiSXecPV+PGmQlJRlNPwcfPt2kU3r9PNN2yYP8PW2UmL+GMfo+cOpJFGCqlUyEojiDJiz3n6dHuDaM1p+C2KsOs7xQiqNIYPJ1J2MGwyaFmoXbNCdazqNTrg74FJwxqqLKrw8Tm3LS3O91lQ0pg2jX52mNtsKeGpmhpzjVrHCvgb7/bt9J2MGaOl4jLsnGnAizR6CVEc7BJC1KD0fRotANRvtAGAtSH/bACPCyGaAZwH4B4hxDme78yTu2BBsJGxwT7kkML3Y9glwgE9r4K/QLfwlDoGHfDZHAMHOnqXgGLY/CgNNyPMv/dj2FpayDgwadhVUBlKo7a2BMPmFp7yE0Lh72H6dHpvB8NmtpTxoTQ6O+n7ciONvXvpOh1wEcCwYbQWHHIagQ2bW3gqCGns2EGG8pBDSH1b17w1p+Fnbvfto4o3p/uMS4T9VHtt2+ZOGtls8Jb+H3xA68BaochjBfyRxs6d5Dg0NND3Zh2HtchAhEcaTwP4lRAiryqMn+8zXisFCwBMEUJMEELUArgQwDz1AinlBCnleCnleABPAvialPJZz3duayPju2IF3XR+wQuCY8PWL8uyocvXIfKsNLxIw49h4zObBwzQIg1fSkOHNPwaCgCYMIFCKE45DZlCTU2A8JTTnhIg2M23YwfJ/IkTqSjCup6KPDYf3rBTZwCG3zNAdu+mz2al4RSeCtpBeMsWqjqqt/EXe/Wi1/yshdZWCsfyvWANo1jCUxnpY93yezndZ8OG0XvZKXM7ZLO0biZMoPWgqzT8hKec1sFBBxG5+lm3u3bRPTByJDkTDo5vOZTGrQC2AlgvhFgkhFgEoBnAduO1wJBSZgBcC6qKagTwhJRymRBirhBibinvDQD4whfIi7DbaeoFNTwF6CsNnQW9bh3lApzCPUEqkjSVRj5Z60dpuHmXgP/wFM/t4MFEcnY3bTqNtFVp6IanOI5t57ENHkx7Y/x0um1tJSJ3MuCW8JSvjZ5OG/sYfvMEKsE7KY1MJh+/9u0NOxVEMPw6EDy3bCytRweXEp7yUvTsQOjOLXfFHT6c1pHT3CJg6M+NNIK0wGGlwc7Tnj1FYwWIkAucMw14ldxmpJQ3g8JIlxn/xkopb5ZSlnxuppTyeSnlwVLKSVLK243f3SelLEp8Sykvk1I+qf3m5xlbOoKEqHTDU4bC6PaTCF+7lrwVO6MGBM9pjBxJC0Qjp5ENW2m0tvoriQXoxnMabylKY8MG5zh2IkGE4udYUvaGndp6lGLY3JKfQHDSGDbMn9LwM14nggOCkQavA6B4vMrc1tb6bNfDpOG0Fvy2aVHvA6d8UTYbrNEmV1SOHu18jd8cDJPGQUZTD+t9psxtqKQhhPgWAEgpOwBMlVIuMX6GEOK/tD+lGjjiCJpoLu/0g507SQ3wgnMgDW4d4Ss8tWYNMGmS8+t+mxZyXFxVGtY4reGlS+Pr9hWe2ryZpLF18xnD71GfTIaDBtkrDSnzifBASmPjRmDsWOfXR44s9mjdsGMHEbmTAbeoOF9xdy+l4fcMELVyzC2nEZQ01q2jYgsnBAlVupGGEp6qrTUUvV/ScCJkNtB2lUV2UE+DdCkyCNTSf/t2CntOnux8TVDSGDCAnluVhpLTKLjPNOAVnrpQ+fnbltc+of0plUYqRX3oR44Mdtg9e0BOO0ct50JrKw0picTcSIPj8bqkwWMbNowWSDZLOR0V6TSyqVpz+H52hK9fT+TppIz8emytrfReAwbY52CMHe0Zyd6lD6XBHpuTdwmQEfFDGl5Koyg85VNp1NSYIUm7sQph5sG8wGtm6FAyGB0dxUn0jNkM0lfzyq4uGu+ECc7XBFUabNhcvOHaWqBb1ug7Dy0tNA9cImsFh63sKovsYFVxHqE/X4TMG/GmTHG+xg9p8PeuqTQK7jMNeJGGcPjZ7nnPAe+I9etVMnbuNG9kuy/LmPCurM+S2+3byaC7kQZAC1PXu1QNBXts1gXS3Y1s0iQNX0pj/Xpg3Djn1/0ma3fupHEycTgs5rQRnvKlNHbsoJvFjTT8OhKsNHg9eFT4+M5pOOVfAFK7I0fSd6A7VsAz5JNT2mBr79lZv55I2Ys0du1ybsuuQkozp9GrF/3zCE915Wr13htw30AL0Hkg/fv7Jw0PpVHUalxnbnkjXlikwfOokoZLTqO2FugOkTSkw892z3sO6uroMShptLaa4ZghQ5z3aRhhqa6cplfBPZcmTnS/bvx4/4ZiyBBXmZ8zlEYi4fPMBy/S8Ftqyd4l4I80wtgDA9Ca2LFDz/jkcqYDUVNDBzk5rIV8AtRvstYtjg3Q3Dv16LJixw6z0obXr40hVltGaHcH4NJoL9IA9ByIPXvoc3kt2OW3rIbNr9JwIw2AXvdDGnxCoVtOI0h35tWrKcLgFvobOpTmTGfd8tgGDtRWcWEqjZl8Uh+Aw42f+flh2p9SaahKY+tW/2cBq4bNLjbMOQ0OT2U1w1OcX/FSGn4NBUCkwQvEaii6u5FN0KKor4d+f6TubiJdHaXhhzTYoLGhUHMw+XxRjf/w1IYN9OgVntIdr9Ww2SWXrWer+FEazc3uhgKg1/2sBS6kYAfCunbTaaSFqTplQpPk/JCGztyqVXSAfajSEnfvkjW0VnTDwG7rFiDC1iUN3v8iBK2D/fuLe5jZtb/RWQurV5MjmXLJK/jZY8Tf+aBBVNaeTDoqjXwiXIZXPZWUUvaXUvaTUqaMn/m5/qdUGippZDL+G+qp4Sk7Q2EhDe1EOCsNtxsPIEOxfbtzC2YVOkpDCU/V1fmontq4kW5At5uvf39606BKI5crzMHkvcsA4SldpQHoKVA2bKohdnAgfOc0slkiOS/SGDeO/i7dFjU8Viel0d2NtKjNi3Ht8NS6dXRfOSWWgWCkoc6tR3iKT/DzXAtbttDmPq5+dEJDg34ifOtWU1W7qLiCHmTK3+CKVavcQ1OAuW51xquShhB0n3kkwrvDIo3IQg1PAf5CVBxrVb1hq6GwbO7TToSvWkWVPU7JOQYbEp0Q1Y4dtDAGDnTOaaTTyCaINGprfZAGf74baQhBf5PT2RhWqIRsp4zyob8AifCNG+kPZK/MDmz0dPIaao4AcDVsWSTJY8sl9drkb95MN66O0shk9MfrpTS6u5FGbX4J+iKNceOc8y+ASdY669aqNDTCU11SkzQ4sXzwwe7XNTTQ96Dz96vND9k22NiF/AZaNq1e7y0l9YnyIg2OTrDj6QaVNAAKWTrMbQ6J0MNT0QT3zw9CGvv20aJUlQaHKRiWRHi3rtJYudLb+wH8k8bAgeZRsYCtd5lJKqShW++uQxoA/U12jRLtoBKyXbxVyWn4LrltbiYCczNsftYEx+aZhOxi2Yo3XFfno6UMh5x0lAagvxY0lEa3CEAavL/IDaNGUdWizlqwErJHeKpgL4EuaegojVxOr+hEbdrpRBqZDNIyZUSZBHJJjVDlpk3UnNSLNDgP2tTkPVY1EQ4QadiEp7LJGgAiVhoAzP75QUiDKxR4gQwcSN6AOul5Q2Fs7tPJaUjpnzR0YtmqoTjoIPrbXXIadXU+chpsqLwSilOnUlzW6wbp7qZQlFVpOJBGTQ2QQ1K/LLSx0dzF74RhwyjGqxPLtrb5sFMaSk6jtlYJVXrNBc+tjtIAgq8FG6XR7Vdp5HLUksdrboUg7z4IabgojaJkrVcyeNWqwn1WTtAtu5VST2lkMsgg6S/0x5VTXqqod2/KweiQxs6dtMb79qXnDgUnfOxvgYrTwIFJGowgpGFtrW3nsSmLOZHQrJ7SjbMCtDhra/0bikTCXop2dyObqIUQJEi0lUZTE91YfBc4gRvOcSLaCepucMCVNLpzRBqAcfN5eZeZDBkLbijnhGSSxssnxrlh82YyhKoD4aE0unVbyvB367YRESClkUzSwT9uaG+n+nxWRVzSrJPT0CG4/fuBQw91vw7QV50ffEBhWlV17t5dWLRSVBZq5Cq91sLKleS5uylOwPTu7Q4uU8FVS1abYBeekqn83GoVGejs0WBMmqQfnuJ8BmCvNNLpfIv8WGmoqK+nxeinLt8akrCLDSveZV2dZtKLbyQd0kgkyFjoeBUqafB4bSpmMolapFJkf7SVxvLlwIwZ3tfx3+RlLOzi2IAtIXcb4SlA02Nbt45ubC/SAICZM4HFi72v27SJ1gFXtQwaRPtA1GM3lZxGXZ0PpdHcTGRk1/xPRX09nYnw8svu16kFEQy7cJqR08jPrc5GTzaquqTR3OzdmXfDBiJMNmys6NWGkJZkra/wlJfnDtAO7KFDgTffdL/O2krHVWmkClWc1zpYvVpPFfF4dWzCli2F58k4KQ2FNPJnAmngwCYNwP9eDZ9Ko65Os7zOD2kAwAkn0NnUHR00ppdftq+mspLG4MHFG9C6u5FJ1CCZNPZp6HRizWYp3DO96ATeYvDftGKF+3VM3nzzaYSnACCX1KjPb2ykRx3SmDWLjJZdrb0K66l6diRncSC0D+TixLIOTjuNeqi5dWS1Iw27cFpXF7rhs3qKSUPXgeDkrhuYNNSxArZrIT+3OqSRyZA3rnOfCUH32Rtv0HOnAga1hQhAGwOTSftyZlVpJDXDU5MmeasigEhjy5bijg9WbNhQuLZccxqx0ihGUNJQk59A4QJRvEtKLGsqjfp67/wA4+KLKZz1gx+QZzxnTrE8ldIHaShKQyc8tW4deYs6hmLoUCKAJUvofb/xDTIIp55auIuVK6w4qccFC3akkfOpNJg0vOLuAM0nALz/vvt1VtJwcCCkEJBIFCoNnaIIHW8YINLI5eis8mzWnpB8KI0u1ClKQ2Nuly0jT5i/LzewsW5spLDWbbcBf/5z8XXr1xeShlslnbUTqxtpNDfT/9Od2xNOoCT/3/9OhrZ3b7rnVFiVBu/VsM5tVxc6UWcSso6KW71af6zcm4rX+ttv03djJTorIQ8YQArOUszDSqOmJs5pFCIIafTvb5bFuoRQfCmNFStoceh4FABwyik09v/+b3IFHn2UbpZPf9oMj7S1UUjGizTSaWRELZJJH6TBMXQd0hCCxvXYY8AnPgH87/+SN//WW8Dpp5uftXYtrVBOLKdS5LXZhadyFqWhQxojRpjGxw2zZtHje+/RGE86CZg9G/jb3wqvsx7F6rAWZIKIoq5OM7+1bx8lX3VUEQAccwx9r5dfbhL0NdcUfoaT0nBIhNfU0Nem1SZ/6VK90BRAynT4cODWW+n//OAHwNlnA7/9rXlNVxd5zHZKQ53bIOEpVvS6hvjEE+nx9NPp/j3tNCK63//evEbtO8WwkoaUQFcXumSdfr4om9Urt2WcfDI5nj/9KfDlLwPHHktz/KlPmfPW3k5rQZ1bbiWyb5/5O2tOIxeThgkmDd0TuviYRIZHTkP7dDndyilGMgk88AAtkKVLSXk8/jiRz513mmMFChveDRliqzTSitLI6nRiXbaMHnXCUwBwxx1ECK+8Atx7LzBvHvDww2SY//hHuoZDMkmz9xGGDCncfBk0Ed7YqG+Ehw+n8tH/+R86QXDdOvLEPvlJGjdA88Mt5xkOa4GrUOrqgK6sxr4SDuPpjre2lkIop59OBuLcc4F77gG++EVzXa9eTSygKlnrxtRcDshk0AVaC4mEoTTc1kImQ3OrSxq9egH33095hREjaO1+7GPAFVcA//oXXcPVSl6kYVH0WqShu0eDMXs28NBDwHe+A7z2Gh0RfcIJwFe/am6k27rVPNOCYSWNbBaQEl1+Qn8bN5LTp0saw4YBV19NhPbrX9OYf/Qj4B//AL70JfM9AXvSsCh6lTS6fJCGfvYjqhg5kjyb3bvtT3OzgtsFMOrqSLLqKA2nxdzVRbL54ov9jf2Tn6R/jI9/nDz6//ov4CtfMY2P2lJ58GCKX6bTyFvd7m5kUJM3FFpKY9kyMkA6IQmAygGff54+4Pjj6Xfnnw9873tknC+8kJSGte+W9RxshTQ4hJJNeCgNKWkuvvhFvbECwDPP0Hwecgjli+rqKAT4hS9QCFBKMrI64SmFNDpzxqCtLSZU+Mm/MKZNA554wnx+yCHALbfQ33DFFcC771Jork8f8xq1Vb4Q+fXZLU3V6bnRs6mJDJsuaQDAWWcBL75Iim74cHIaPvpR4IILKCTIVXZq3N3uxMpMBrlEEsiJwuopt5LbVavoe7I7a9sOQpCCU/HrXwOHHw5cdx2RyMqVtL7VNh+DBhXu7zC+7y5Zlw9SeFZP6TQqtOLmm+k+mjvXtA3JJHDjjcBf/mJ2w7Aj5J07zRJuS06jMw5PKfBbdmslDaDYq7B234ThWjgZiqYmMkB+lIYTbruNvOI//hH4v/+j33G4BTBVhzpeo8ySDYXWYTa6lVMqTjzRJAyACOSGG0htvPMOefTWDWLWM8aVNiIFOQ0373LzZpoTP0Z45kwihwULaM769qUQSmcnhQTtzrqwUxpKeKq2FmjPGWvBzbA1NpIB8upB5oabbyYP/hvfIIfo3XfpDBkVgwaRB8xhCWNMXdJUnZ5xd1acftfCGWcUlio//jgZ2euuM0lDNWx2jS/TacgUGTPtnIafXJETJk8mL/6ZZ0h9/O1vFLZSYbUJxr3fqYanvFSc7h4NFSNGkBpWncnrrqO19N//bT+3dsccZ8zDuPwqjZg0rLAjDWsViiKbe/UCOmG4Fk6k4bdyyg2zZ5NH+dvfkqGYPLlQDdid/JdOF4SnPM9a5sopv4bCDp//PLng995LY7JTGqqhsDRSAzSURhDPHaB8CjMTQDfvpZfSWBcupN+pOQ27DXOKzK+rU7xhL6UxZYqpBIMgkaDc0Z49pDhaWopJw0pyTBpQQpVeSmPpUvqb/c6tFbNnA9/+NuW9HnyQfqeG0rgzr2UtqCEU7fBUqaQBANdfT7bjwguJlFUjDRSThjG3Hbk6RSF7zO2qVea5P6Wgtha48krgn/+k8HAiUbhu7Q5KU3IacSLcCj+kwQew2ykN1QgbNeid6EVxbFYaTrXpfpNzbhACuOQSinE//XSxobA796G7G2kjPKWVCPdTOeWFgw6ikNpvfkPPrUpj2DCac97UZVFxgIbSCEoadrj5Zvqsf/s3SjirOZ1Egrw21bBZchpaIZQVK8IZ66xZwGc/S/kNwF5pAKbDw6SRM3MaWqQxaRKFaEvFTTdRmOeNN4Brry3uwWY9xMkS+vMkjbY2ykOEcZ/16QPcdx+po2SSwoAquL0Qzx0rjVytfvXU6tXk9PFelVJw8cX0Po89RoShOiQOSiNrR8ga+PCQhm7Dt1yuuOGdtQKrowMykdAPT61cSe+hmx/wwhVXmFVYh1k61DNpqLFhY0MX79PwJA0/lVM6+MpXKBxTWwt85COFrw0bRsqGDZtCGhxC9jRsjY00t6V6bAApgLPOItK85Zbi78y6FjIZSKFUT8EjPNXdTeHKMEgDAO6+21yv1rl1Uhp+chpLl4a3Dvr0oTDVj34E/Pznxa/bkEZOibt7kgbvDQlD0QO0Dn72M1Id1qo8KyHbhae8lMbq1f7yGW4YM4aq1IQoJrgBA+j+KyINm7nVwIGfCO/Xj7wkHaXx1lv0yHX8jIYG4NlnzYRiZydkr3qgXVDyUyc8FdZCBsjQPvQQcNllFNdWYReeMnIaKc5pcHiK/x4rOI4dlmH7+MepTDibLW5Joh7cM3hwAWnkNyPqhKemTQvHYwOA22+ncV17bfFrNqSRs1MabvmtbDa8uR05kipmtm41q2QYDkqjM2cJTznF3dNpMmyf/Ww4YwWoMumEE+xfGzbMzNMZn+8rPBWmomf8+7/b/17dvzV0aP777siZiXDPuV23DjjvvPDG+vTT5PSq1YmAWfnlktOIlYYKIZyP+OzuJq/n1FMpZPDSS0QwxxxTeN3o0eR58s3X0YFcHbV/4K6xMpGwD0/5aVToB5deSmpCTTwD9uGpdBrdUPZp8PG0TodT+dnMpYtUyr6HlTUBqtTmJxKKYfMKT4VlhAHyrH/5S/sW9lbSyGbtcxpOSiPMUBqjrs6+h5WL0tAKT61fT0YvLG/YCy7hqYJEuNPccrmtWk1YLlg3/drkNFzDU343IepAiGLCYFiPi02n8+GpgnNrNHDgKw2Ayszsznv44Q9p81F9PZVbbtpEVR9W46Z2wxw0qIA08i0Dausg7LzLHTuIbMImDaBwfwajd28ydhyektI+pwHQorVbZCtXhmvU3MCkwRVUFqWRTHoojd27Ke5cqfGOGkWGLZs1JrMwEe4ZnmLSKMd6sIINGzsQdkrDraUMh3sqYYQBIo29e8n56tXLmFul1YVXw8JVq8jZCSP/4gVrGJiVRrYWA2qUPTBOcxuk3LYUWEkjk0FW1OV5JlYaVkyZUtwLZ/duiqt+7nPA/PlmX6c5c4r/P5/jzJt9OjqQqyUvNB+/rO1lH5IIs3JKF+oGP973oGzoSrt1YpUy3FirF3RIw01plMNzd8PIkUQYbCwsOQ3P8FRjI+1PUPdTlAu9e1N4lvcTKKShldOoBmkABarTV3hq1arK3WcjRtAjz63xfbdn6/RCf9UgDUtpe1aklDL8mDQKMWUKeftqyOaXvySv5tZbKZnc2EiVM9aNPkBx331LeAoAcjV19uGpapDG4MGmUTNuMDX56XpQ0PbtVBVSqcU8eDAxmStpuCiNapAGYIaolPBUQVGEm9LQ6Y8VFkaNMkOzNkrDteNxUxMRDxvIcsNKGn5KbjkMHGa4xw08Vl4HTqThpjT693c/ZTJMcJUiI5NBVtREjzSEEJ8QQqwUQjQJIW62ef1iIcT7xr9/CSFm2r2PJ9hTYnaXklpcHH+8uTGO+zzZ7SQdMYLihUwanZ3I1RaGp3I1dc5Ko7bW+7CdMDFihLmYDUOhhqdclUalPaBkkuZcMRSAmdPIx93dlEZdnfepcmHBShpdXfmdtZ45DT7MqFIEB7iSBnU8dvGGm5rCKwnVgQ1pZHWrp9jZqRRp8LHClrntyGlunOT9JJWa26FDzXNBgGgqDSFEEsDdAM4EMB3ARUIIa6OjdQBOllIeDuAHAO4P9GFsAFluL1hAN++ll+r9/5oaMsRKeCqrSxorVtDnOyWoyoHRo4sWs5r8dO2VVWnSAApbidgoDVdvuLGRbr5Kza+VNDo6kKmhGLpneGrDBqoiqzRpWByIjqxm80o/zfTCgFpJB/gLT+ke8Rom1KIIVhqZOtTUKOvWLTxVybllRaNEILLCLDaJBGkAOApAk5RyrZSyG8DjAM5WL5BS/ktKyVux3wbQgCCYOJEYnQ3ib35DibbPf17/PUaPLghPFZOGTU4jk6GNTEcdFWjYgTFqFMVaM5m8oVCrp1xPl1u9miqdKqmMPEgjK1zO0wi7csoLHKphY9HejrRCGq7hqUqH0gBTaRgFEQCRhmcIJZulHkeltDrxC7vwlF1ZqN3clqPc1gs2pNGJOkVpOMwtn3JZDdLgEJWiNFKp6JDGaAAblectxu+ccAWAF5xeFEJcLYRYKIRYuF2N3QFmSeLq1fSF/f73wDnnFNe1u452tEVpFCbCs9acxrJl1EBs925qF15JjB5NoZBt25QmdUp4yq1996pVFOoppcWFX6illsoZCuwFOSqN/fvJsPlpplcqevWiUlZFaXQbpFFQ4WOnNKpFGl1dlNPzUz3V1ERrp5Jj7dWL4vxqeMpuA5qT0qip0T/YKgyopfzcsFAhDce5XbOG7s8qk0YmgjkNu2Cebf9yIcTHQKRxk9ObSSnvl1LOllLOHmqXXJo5E3j1VWpCtmuXfmiKMWKEuZg7OpCtKVQa2ZQSnpo/HzjySCKmRKK42Vm5wX1nPvjAtmLGNafB535UEp7hKYdEOO9cryRpADRelvnt7UinbMJTTkpjyBD9DqxhgNfCpk1FSsO1O4CfI17DhNqLTNlLUFsL5JCk/VBOpDF5smOYcsUKSmM6bU0KBFb0uVyBoi/YA2MXnlq0iB6tm4jLCVvSiFhOA6Qs1INxGwAU7cATQhwO4AEAZ0spW62v22HjRmoxX4CvfY28wyuvpFpuv4acDUU2C3R2ImOEp/K7P1NKeOrii+lLqq2l0BTXy9tg/37qCsIh2VDAJcKKoejSKbnt6qK76/DDQxyMBoYNo06sHR324Sk4JMKrZdjU6rT2dqRTpgOR3+jpRBqV9NyBwjY6xpjadXIaS5ZQSFf3PJWwYFGdHJ7yPPrXo9z2G9+gwsgwN2Dny6+3b7dVGo4K+a23qBTaZW7/+Ec6oiY0WEkjnUYW0SONBQCmCCEmCCFqAVwIYJ56gRBiLICnAXxJSqltVrdto84Vf/mL8svTTydjmMlQ/xu1N74Ohg+nuHBrq5H8tFEanZ20oNesAa66ijpOPvCA69vOm0cdQS691PtcJG2oSoNLbpWQhOORpMuX0+/UVus2CNVbAwq7cNpUT6WdlMayZcTa1s655YZ6cFR7O7oVpQEAuVRtcXhKSi3S0D0rTBs2SqMblqN/7RaeR6NCKYEf/5gir059OgPBQhpqeAoAtUq3kgafgOeikLkzzjPPFB6DURLUogiFNPKJcNTYOw9vvQUcfbSjKmpuJoK79dbi89QCY9CgotL2TNQS4VLKDIBrAfwVQCOAJ6SUy4QQc4UQc43LbgMwGMA9Qoj3hBAL/XzGk08qT4QA/vQnOtfhuOP8D1htd9HRQcoCptLIJI3wFLcVGDKEPsej2dtTT5EX9fbb5gF3JWPYMFoJqqGQNd7hqffeo0cX0njzTUoFvf12SGMFChOgStt5W6WRyVABwxtvkGGbPr2ylWlAIWl0dORJI2/YamoLjUU2Sz2Vdu4sblGjYN48urfVk1FLho3SKCINJ6VhbYap4Be/AL71LeCvf6XuO6FBJQ1LeApwUBqrVtHf5kAaW7dSR5TPfIaeL14c0lgdSIPntivZ2zyaGaBCmnvuofvs2GMd3/a22+jPyWbNgyRLRiJR2H8qk0EGNYWKU/etQhpSIEgpn5dSHiylnCSlvN343X1SyvuMn6+UUg6UUs4y/s3Wed+aGurGPX++5YWxY4OHXiykwSEJJo00h6fszmp2QHs78MILdNxvfT1VAoeCZNIsEbZJfhaRxpo11Fb6vffIs3SomOnspOheW1vIhk3dFZ7JQCaTAIR9CGXFCmLX666jCXMJTWWzFKYMTcExmDSyWaCrqyA8BRjl10waK1bQd3HVVeS4fOpTjm/74INUN3HJJWYxUMno3dtMLtvE3QsO5OrooDMvHnmEPHeXuX3jDbqd+venPnmhYfhwItd0Ol/hA1hIg+d21SpyzO64g+b29NNt35LtwFVX0WPopLFlC9DdDZlIIIdk/j7rTPSmm5wHMWUKne0OuJLGu+8CZ55JOf1Q51ZtJRLRnEbZ0KcPpRJWrKD9LKGAvWHjDF4OTxUojc5OX6Txzju0ps4+m8KxXFwTCrjU0rLpKJGgo1QBkNHr7qYEYr9+xGCHH+7oub/4IhmzMWNI5ocWpioiDRqfWT2leJecx1i8mHb023WiNfC731GY8sQTQw6hDB5c4CB0JV3CUzfeSNe9+y6FJKxntRhoayOvnZsWq81eQxlva6tt+XVWJvPnW+O118gAX3opGZgLLnB8y8ZGWiqf/jTw3HPuTYh9Qd2rYexaBhyUxtNPU6jnkUeo6eiYMTZvSPdZMkkdgsaMCZE01OagXV2QtbQAikhDSpJjnZ1UjPPww44El8uRDzdlCimjl14K0elRScOS04iM0igX+vSh+1PKEL13vtnXrweAIqWRSdT5Vhpr19Lj1KkU6g6VNEaMIA+IS25zphTtVktu1Y6t69dTLy4HcFz4llvov4UWonIgDdvjaZcsobvytNNI6n/0o45vy4fvvfVWiDIfML9bw4HoSvWGEGayNpsylMbKlZRYu+wysnrnnuv4li+8QMvn5puJLENdC5y4t+kOkDcW2ay5Fn79a7JcDqHVTIac/OnTSTi1tpqFbCXDEqpUN6ABQC5Za5LG66+bL7hUQ77/Pt1jvXsT0YVGGv360VrcscOWNLoS9WZl1bZtdP3JJ9NYHRyzDz4gbpkyhYqrOjryJqd0WJUG1LnV35l+QJJG377mfrp33gnpTfkgEyYNSyI8nfQfnlq3jr6wMWOINJqbzb6JJYObFtps6CogDa4znzePvKIbb3R8y8ZGGus559Dz0Ai5Tx/6ZxgKlTSoLLSmkDQOOQT4+9/NeIMD3n+fKp/79aOahNDA361xHnNXsnd+kxRgKI3ubnNfz2WX0Zd9/fWOb7lgAfHKnDm0TSZU0lDWgqypgUTCvpKO18KFF7o2VFy3jv68adNMXgltvKrS6O5GJlFTQBpZVhrZLB1vesUVtBYuvth1vBxxnTmTIhBup/Fqg8+psCgNToR3JIwigvZ2+2OkbcD7jydPNmsmQptbJo1cDsjlkFZyGn5wwJLGgAFUecpfQslIJOhLN0gjkyxMhKetSsOubbkF69aREU6lzAUSWiybQxLKMZS2O8LZsI0d67l6uPhn2DCKZVsbB5cE3qthE55KI0WyMZul8JRGia2U5FEeeSRw0knAyy+HOFaL0uhO1BeQRjZZW1gUMWgQhQtdKvbWrCGySCbJgw9daeRJg+I8eQdC3VeyeTPdOHbniChQ9yhy+6TQSWPrVmD3bnTUHlRg2PLhqfffp/DkySeT6kzYmzIp6T7j1mSHHELLyOD70qHMbS5VOLedQiENu2OkbcD31JQpZSKNnTvzNkEta/eDA5I0GOPGhSjtgALS6LYkP/OksX07ubZ2Bw5ZoC7m0BfIkCGkc42kjtqkrjtr413y3g4HcK+96dPJSEyeHCIhA7akYcZbjbjP7t00aS5VPYyWFtrDOXMmhbtXrTL5sWRYSKMzUag08uEprpd02afDWLPG9IanTaPxhpYnsCENntv9oi9d09ZGpMElui7gNTp1KhVwhKqMmDQ2bQL27EF77cBC0kgYpMGVfh4tenbsIPXO9xmfVRUqaRjhqVxNYXiqg0mjo4PWtkZH29WryXQ0NNCyGT48xLll0jJqjtMxaRRj7NgykEZzMwDyLgHTKetKGD9s2qS941cljSlTCttjlQxWOkacuiNjxrE7c4Z32dlJlrS21lMZbdhADhOTm90RJSWPd+dOIo2EJafByoiTQBr7MjhuPXMmKQ0gxBwMz5VDeMpWabhAysI2T9OmEefYnRsWeLx79wL79xcpjSLS0DhnfdUqSplxF55QlVGfPnRTGYtrv4U0slw9xXPr4b3zHHIrtdBJQwlPWUmjM0B4qqmJ1gELp1BznUxaRg+9DApDf7o4oElj3DhyBkOt8jHerMsgDQ79dgtDWXzwgVZoqqOD7lFezNZOyyWDict4QzU8tVsax7ju20evjxrl2aLZ2jZp8mTiT7dTWH1h0KA8aeSs1VOcrOUkHh9jqjHeGTPMFj+hGeEBA2hwTBqJeiQSFtJgw1ZfT/9csGMHfRXMhbyxObQuAYoDoZJGIgG0iX70Gq8FDdLYsKGwn2WoyojzBIb3VEQarDR27qRf9uvn+nb8nbNzNno0fYQhEkuHEgZWSSORADpgfO9tbfQla5DG2rWFPtG0aVRkEMqmTyYNY2HtTQ6MlYYV48bR+lILhEqCUtLXCVIWvGE2rZKGhtJgBaQeA6F2sS4ZVqWhJML3wiCNvXtpvBohCXby+WiSKVMoNhyaIR40iG6+ffuQraNJNXMwRniKSWPAAM+3W7+ePOEBA+hx4MAQx5pM0nidwlNJJTylEZriuWWlwT33QlPJvB4V0uC5bYOhNPbt01YaGzYUHkk+bRoJq9DmVyGNtpqBhYTMpLFrF32pHs6OlTTq6kglhZ7T6OrK5zTyiXAOT23aRIyqEZ7asKGw5+KkSRRhDmXrAH/+ihUAgD2pwTFpWMGTH9oCUVyATmGGpxIJoEsY4SlN0rAuZqCwaWbJUAwFYIanEglgHyzepUc+A6A5rK01Q87WI0pKxqBBRGKbNqF7AH0IV0+lWWlwkYGG0li/vtAbdjomPjCGDDFVnIU0Mmp4SjOfAZikMWIEzXVopKE4ENZkbZ40Nm4kovMgDSmLSYPXcGje+5Ah+bh7W41VadQWkoYH1q2jP18VJGPHhhyeymSAHTsolwVzbtthkAZ/kR5KY+9eStupc8v+XCjOpIU0didj0ihC6B6bQhosPWtraZF0sdLIZEoijdCUhpU0lCZ1+9EHUoi8kdZRGhs2kNDiWCsrjtBIgw3bypXoOohurnz1VACl0dxc6LFNmBAyaShHoHYIC2kklPCURqiSlQavhUQi5Hwcj2HLFkgraXB4imNhHmthxw5KhamGzXouVWjjBbAv5RKe0iCN5ubiQx1DJQ0e6wcfeJOGh9Jg0i3b3A4eTMrMKNGMScMGPPnlII12SaRRU0P/8ofvAFoydN06UyozRo2iSsNQdoDyDcXesDTDU4CgmtlNm0htaJKGupiHDqXxh+Zdske+axc6DdIo2q2qSRpS0nduJY3m5hAbAioeeaeot5CGv/DUmjX0Faipj3Hj8jUXpUMxwqrSSCSAfdJQGkwaHkqDja2dYQuikjs6qI9VwZpXnK5ipaGEpzTmVi02YTBphLIWeG63b6ewJGxIg79ID6UR9ty2tFBXhDw4rGpI212JwXEi3Ip+/ch2BiWNn/6U9g3l0WAeHNgu61FTg/xO4C4ote0aB8GsW0chE7W8fORI8+ykkpFK0R+fy0EKgZzSABAAZN9+ZlxEI0FnJQ0haDpCJw0Anf0KSSOf09ixgyyrRznz7t3EhWp4asIE8pBD73AKMg6plEVp+AxPWQvCxo8vQ04DJmnw3O6V/cxBAIEMW79+lNsL4g3Pm0dtxP75T/vx7ksNLDBsGWtOwwW5HM2hHWl0dITUQVYZazZZqOLYsdQNT9nNbSnhqfvuoz2Pu3crv1SKefYk4kS4LYLu1chkqHfbgw8qv1Q2Z7XneuX74aRSFqVhXaU2sPOAyibzawu9SwCQ/fqbHpBHCIW3c6iLGaBwFZ+AWzJU0uhvDU8pSkMzNAUUKw0gxBCVos72Z3uhrs5cHmnueNzaqh2esvaIHDeOCC5Iz6zubsuO596987XhWUt4aj+M8j++STxCq2zY1DZPQpitzvyCP5ZDdAVjqKvLq7i80hBKya0HaXDrNTvSUP8WvyhQKMr3m0kV7ggvUhoac5tMFoq9fv2oQjOITeB7s2DNcxTkoIPQnUsVKGRdxKThgJUrzb16dmiX9XnSqKkBOmV1SWPLFpuwFi/S2kJDAQC5vv1NmeBh2DZtIufEjjSCKo2tWy2l0MoYOhSlUdBgcccO7copIFzS2LrVYizU8FR3Ip/bAoCMqCVPOJ32VBodHVQ7YUcagH/DtnIlRR779rXsSzFITgpaAAXNK+vraW6F8DTEGzbQ5dYlEzQfx39fQSiO1+3AgchmUUAamYRBGrt3e86tXd4QKI00HnuM5i2vUhT1oIanamqAtqyhNPbupXn1OEJ540ZS71bPP+jcMmkUzC2TxuDBRXOriw8NafiNX77/Pj1ywY4V7ZnaAqXRqYan1ESFDfbsIZtiXcxBpWgmQwur6DBCo2RE1heWsAKA7NPPtNoaG/uA4iaiDQ1EKH5zMHv3UjimQMUpBqDDKTylqTSYNNTwFI89iDJilfXMM8ovFdLo7kah0hC15qYFD8PGN7RdeArw7/AsX07OTiZj2RT2/e8DAPotJybJn2OdBTEMQHPrYUHWr6e5sFa6BjVs7HQUkLkNaSQS9JkZUUMWO5fzJDgn0uC1EIQ0vvhFeswXgAwYkN9Yk1ZIo64OaE/XmEQRIATMCFpVyR0QbJXG4MHI5RDnNOwwbhztrSmI62mAdxQXKY3584Ef/ADdaVGgNDpyitLwqB1nQ2FdzMw1fhcI50BefZW6W+dxwQXAmWdi3/2PA7BRGgxN0rBTGpmMeWaOLpqbaZNsQRz7oIPy89bet5A08uGp3bu1K2Z69y78s/r2pY8I0kpk8WIihgIjrISnurpIzLFhSyeUteAxt9ZyW0bQyj81H8abpgFQcPumm7Diq3cCMOc2m4VZj6oRSmtqMivnVAQNT/HaciKNXM5cs8mkoeL4jAoNpSFEcYpxyBCK1vklDbVd/a5dygunnAKAzjAH6D6r5e74vJFLszjGLh0adP+Wa3gqVhrOCHrzMWns2GFRKUcdBdx6K7q7YVEa3r2mGNbWBgzeFe7XsKlG+w9/UF644grg+efRecwp+XFyTiPLpKERkuDxWkmD6wL8hqh4MRe0qE4k8uNg0mAvaEtCqe7SVBrjxxdz9+jRwZQGk0XBjasoja4uMzefShlKgxGQNEaPpr+9FNIoMGxCAHfcgQ1zLs+PM5k0xCYrDY+Yu5TOpDFyJPV42rfP33i9SCObNddsMmmEpxga63bUqOK6CSFoLftdt//4h/lzASGffDIAoN8m2v/ASqO7G2ZJnIfSaGujuZg6tfi1ICpu7156TyAmDd8IWnbL4al0mr4AK1TSIKVhhKf4BnQBVzfa3XxB8gRqRVDBYjbA4aOCxm+9De9SIyTR1EQ3n7VbdtCQD/99y5db2pAMGgTU1qKztn/BeJtSU80xapKGncc2enQwpWFLGspuMasD0a2SBvcEccDatbRkrPY6lSJS9lt2u20b2dLBgy2kYYDXAjsQfpTGli1EDLyxU0WQfFxbG63XPn3oe8kn73kcSngKsDSvNF53g13ekBFkr4Z6nxVUXhmkkeokK11TY6M0PEiDu1vbHSE/ciTNlR9C5nsymYxJwzeCKI2uLpLabNTtkuFW0khnjamcPdvz/RsbKRRlZ/+CLGZWGnxSphUcXlfDU5k+htLQCEmsXu1McEBwpdHdnd+cao5l2DDkJEkEXtAduTrT+AbY2MdoaCiNNArCL4qMsSqNfB+yZNLTWLDnbhfRDFLEwX3xBg7UWwsFOQ2PtaCe9WAFR+v8zC+vm+OOM3eaAyDvfMAAYPjwYtIQCml4hKdWrrQnOCD4fcZOaAFpjBoFPPgg/nbJYwDM8FR3N7TDU9bebtaxAv7Gy9/DRz5i2Z/E63HQoDin4YShQ2kN+rn52KPg48TtkuFW73JTzTg68eyppzzfn8+lsAPvBPaTuOfxTptmX3tuqzSYNDT2EaxebX/zDRpEseEgSoNDDgUhqnHjgIkT8+NNJBRvmDPFHt4le6/W0B9ASmPzZn+N9aQ0T6Wz9aIHDMgnwgEjPMVnVDixgQKnuQVKJw07pcF/e0FOQ5M01LMerGCPvqB01gNsBLkLccHf+o9/ADfdVEQaTSNOMK9xWQu7dpGRd7vPNm82jxvXwZYttIYGDLC5z778ZewcSDHGgvCUptJobKT/Z0fIQSr/mDSOP55SQHkbFisNb3D80s/Nx8aBSUNHaWQyoBPaNNpge5FGW5u/BmVbt1KEoaHB27tkY52p1wtJ7N1LhshuMQsRLJzW0gIccQSNpeDQqXvuAZ54oojkcjmYCRSHw3YYduW2jIYGei8/iftt28gAca18AZm3tQEffJBPhAOG0lBJwwWZDBkCp8vGj6e58tNJmI9tGDTInTQKchqa4anVq+n/2VX4jB1Lr/lpK8OkccQR9FhgiI88Ehg6NO8NAzTeJWM/Bdx7L3DCCa6G2M1z5/FK6U8Zbd1Kap57FFrB35NtIlyDNCZPtq/KZQfID2mwI8c2LG8XpkyhI53nzIlJww3jxvmTdlbS0FEaujf25s1kiKdPt389iBTdssVczNrhqd564Sk37xIItit840byngYMsIx38GBg+PB8JXCBN8yZYg82tdvYx+C+jH6UESeqjzuOvvMCQ9ynD9C7d5HS6NVhXOQ0aQbWr6fvxk1p5HL+DJuX0rDNaWgmwpuaSPDZbQZLpeg1P+fBbNhAY+CDGJ3GqyqNbBbA3LnAG2+47nvwIo0ghnjLFgorcxd/K9T7rK6Oxsrl7jrhKaexDhtG3ONXaQwZYlZk5qtHe/UCnnwSmDYtJg03+JX5HLv2ozR0SUPHAwL8kcbWreZi3ru3eCx24amwSMPvrnApiTTGjCHDZlcKrYan8obiq18FrrkG+Ld/c31/uz0aDCYNP0aY/zY+IM6urNSqNPq3GRd5kAbPrZPS8JuPy2TIA9bJaQQpuV22zD2vP3myP6WxcSN9J2xPvUgjldIPLTY2kuG2Wwc8VkB/vOk0za2b0uCxcSIcAHJ13tVTnZ1EtnzeuhVC+O/S3NJCc8sRPLu55XLmmDRsMHYseWAdHXrXb95MEzl+PC08HaXhZzED4ZIGKw2l518BbJWGZniKPUdrSSjD7wa/Xbvoe2hoIKXh5g0XGLY+faizncd4m5sLW7hbxwr4IzkmmI9+lB7t8hpqIjyZBOZNuwm48krg8std35vn1olb/HrDra1Eykwau3cX58bUtcDJWtnHO6fR0UGhxFmznD+fT3PUzcfxZrb6enKAtZWGBhobqXzVySCOHk3fma4y2r6d/q4RI7xJI5k01wOfDeNGGsuW0d81c6bz5/vt0vzBB2b+BXB2ziKXCBdCfEIIsVII0SSEuNnmdSGEuNN4/X0hxBFBPsdvS4bNm8noJJPkBYWpNBYvpkXntGl8+HB6Pz8hH1VpAMUepjUkAQDpej2l0dhIqsBabssYM4beX7cRIP9dY8bQgrZbzGp4Kh9C0QRXzNilPoYMoUgMh5x00NJCRo29QDvSsDoQO+tGAr/6leeJfU1NNB47ggNMp2XpUr2x8h6NYcNoLWSzxWWaKmnU15MhzPb2diCWLaPvxc2wTZlCJbm6a0HdAe2kjIKSxvLlzo4ZQOtj0iR9pcF/k5fSSCZJGfB6yNb1pl+45DrVo4mdwKShS8gtLaZjBrgTcmRIQwiRBHA3gDMBTAdwkRDCGuk/E8AU49/VAO4N8ll+Zb56xMSQIeEqjcWLaXE4FdUkEjReXcPGvdt4MQPFN581JAEAHcPGESO6uY5wj7UC/stu2cvn8JSb0mAvyM9xvW7GQgj/IRT22Jjk7QyiteRWdy2sWuVeYJVKUby/oMLMBSppcFjCzYHIn28/eQYtdJfuzDqGjUM+Ot57LkdrRiUNpxCKmgjXIY09e0hxcnjZCVOm6CsNLp5gpWEXBk6nzXwP24aOw44CzjjD1TIvXkxOmZOaB4g09u61nyMruGeeGp5yUhqRIg0ARwFoklKulVJ2A3gcwNmWa84G8IgkvA1ggBDC+zxKC/yShnrqpVMVShClkc2S1+h24wFkKHhzoRc4fDJqlLPSUL1Lzh129h5EVua44xzfO5ejfRRupOF3Vzhfx16QW06jIDylgc5OKvl0G68fQwGYHlufPvR92xnhXC4YaXgRMkBrZfFiPQ+T53bUKOdYtupAMGnsP/pUsjIHHeT43osXkyqy9shSwfmOgnYrDti2je4hdjqc7rMgSoPvHS/SmDyZnDMdp0RVGm5hYCYNXg+7z/0y8MILru+9eDFw2GHuhYFMyAXVhg5gNdzQQN9xXZ07aQjhWRlegGqSxmgAqqlpMX7n9xoAgBDiaiHEQiHEwu2WeBK3ZNANT23aZJKGkwdkW3LrgdWrKTbsRRozZ9K13GLH6z0BMoa8mK3SWTXCHDHRye9s3Ehj0FEaunmCjRtpHCNGeCfC/ZLG6tVkANzGO3kyyXxdw85KQwj7sATvYvarOvfvJ29YhzS2b9fbad3YSOOYMEEvv8WkobMWdAzbuHHUYVdHGVn7mYUZntJRRQDdM52deoUR1vAUULwWMhnTKeP1UNCi3gZSmtEHNzAB6jiTfC9y4YeuitNFNUnDjtus/pTONfRLKe+XUs6WUs4eailvS6VoAnWURlcXhaNU0rBbzEFKbnUX88yZ9IXqxLLVXbpe4SmOYwN6hsIraQ/Q/PTura/iWlrIE04mSWl0dhafGcGeX0H1lAZ0xjtlCs2Hzni53JXVlF2pJW8O86s03NpGqOC1omOIGxvp7+PztwB30uC14HVmRzYLvPuuuZ/CCUKQcQtKGnaGrbPTJDc/pDFokGk0ncAFCLx50w1LlpiK0400rErDa/Pgxo3kOHnZhHHjSAjqzC2TIP/9bopeJWRdVJM0WgCozbYbAFgLGnWu0cLEiXoy/7336JrDDqPnukpDlzRSqXANRVMTGe2RI8nLSyTCJw2nPSUAGYrDDiOjogMutwWc461BlUZjI43HqywU0AtR7dhB3yvffHakEVRp6BAcYK6Fd97xfk81n8Nz66Q6VaXhRRqNjbSP8eijvccwcyZ5w14hH2sTTKfwVFubuY0kmdSbW6+8IeOoo2gO/vIX7/ecP9/8+3VIQ1dp6DqSfgiZlQY7O265w6iRxgIAU4QQE4QQtQAuBDDPcs08AJcYVVTHANgjpQx0rt3nP0+LWT2YprkZuP/+QqPENycvkEGD6Iu3GtkgifDFi6kM0OO0UowfT6XzOguE+0IJYTaKdUp++g1PLVlCuXKPPV84+mhg0SK9OeAcAeBc2WFtI6KbCF+yhJwDt6Il9i51SMN68w0a5Bye8qs0Ghvp+/DYyoEBA4BjjwWee879us5OMsRM8Pyd2Rk2oDCn4UUa8+fToy5ptLWZlT6PP06OmBULFtA6Z3IbOJAqvazOl0oaqZS3A5FO0zrwqO8AQO97xhnA00/T/7v3XuDWW82Goozt2ylXxnt1nHKHaiJcV2nwPc5Oqht0CfmDD8iR5BTVAaM0pJQZANcC+CuARgBPSCmXCSHmCiHmGpc9D2AtgCYAvwLwtaCf96Uv0ST+4Af05b7wAsntr3wFuPtu87r588lrV+OBQOECkTK40vDyKAAylMccA/z5z/TFPvYYcM45dPysdcE0NRUansGDi6u9giqNd94x9ye44eijKffhFU5TN/YBzkrDLtaqQxw64x0+nD5XPRvBCby7nL1hux33bBSCKI1Jk8z/54Zzz6XxutXpr1pVmM+pr6dQirVcnMeWSPgjjYEDvQkOMNf3n/8MXHQR/fv0p4s7RaueO+C8FvbvL1QaXqSxZAn9PWzgvfC5z5GRPeww4GtfA/7rv4BPfarw/rA6kmErjUmTCpomO4IJuamJvtdrrgH+/vfi61atorwWKy23nIa6cVIXVd2nIaV8Xkp5sJRykpTyduN390kp7zN+llLKa4zXD5NSLgz6WX37khfxwgtkBD71KTJep5wCfOc75k5fXszqhAOFk57NkgH0YyhaW2lx6pAGQGS2fj1w6ql0WtjChcAddwC//KV5TSZDHpC6o9iuRDiI0ti7l8IdOt4lX8MeKUAkajX0ra10QzNpuCkNqwfkZSw2byZC8hqvEPSdv/KK+3WAGULicJdbeMqv0nj3XT3vEiDSAKjQbcoU+nfZZYV7MDgur4a7hg61dyBSKZoH3UT4/PlkhHUqbGbOpOq/r38d+OMfaSP/pk3Al79sFnZs2UI5DfW7skvcZzK0XniPkA5pWA28F84+m+6xfv2A3/yGjHBTE3Uq4e/2X/8ikj3ySHrerx/NoVsi3I/S0LUJc+aQzfna12gs99xDSumHPzTvNSnp+1KdJzulkc3SPco2LBJKoxq48UZqu3LqqeS1v/UW8MADtJjvvZcWS1OT92K2epc6SkM3dsk4+2wyrq+/Dtx8M3m9H/848M1vAvOMIN7atfS5qgdotxnRTml4VWYtXEgLUOfmmziRyOqBB+g0vjPOoLmZOJHmmMHJZzXWCtgvaL+k4SeE8rGP0Xyy575/v718542N7OkOGkQGVjWyQRLh27bR5+satokTyTCceioZ75kzgUcfpeN9+bNefJGMg0oaQ4YUr4Vs1vQqdRLhbW2kIHXHWldHRvbmm6lR7T33AD/+MYWAjjuOSlz5u1LVgJ1ztn8/PfpRGvPn09/t1D7Eiv79gZdeonDZJZeQYf7ud4FHHqGQdiYD/Pa3tGZ4HE6VdHZKw400WDXo2oQJE4BbbqHxJpNkGy6+GPiP/yB7sWsXrekdOwq/LyYNNZ/LBzT1N/b4+iENH6LkwMDnPkf/GJMmAZ/5DHnwr71GXsSXvmS+bheesiMNL0PhlzRSKeDZZ8mbNM54wcMPA2edRaGq114jww6YrwN0w1iTpkHKLPnG1glPCUEhvksvpeajvXoB3/oWEfRpp5GBHDrUPN6VjxxxUhp24SkdY5FK0fkBXjj1VHp8+WVKLp53Ht1Ejz9OxMyw7qNQY9kcvgySCPfrDQNkLFQ8/jiFfv7f/wNuuIEcic98pjDcNXRo4Ul+gLlrGdALTy1aRN+HbrgHoHvov//bfP6Nb1Cu5eKLyUMeM4Y+W63GCpM01EhBEHzve/SZ3/wmzfHGjdTBRoUuabiFpxYtIkOucQRPHt/+NhHipz9N6/GEEyiUff31ZBe+8hW6zhr6y2ZpjXMYjFUqP4+Vhk9cfz15ZG+8Afzv/xaW6tktZrs4djrtXpm1eDHF051aRtjhiCMKCWHUKCKL8eOptdHvf09GTw1PcUhCHYsanhKCPEwv0vjXv4CDD9Y6bgMAeWVLlwLPPEOPP/oRGbL2dlIgABnpSZPMzZZOfXFUpZE/nlbDWMycaRpCN0yfTnP4zW/STScEze0555jqgzc2qpVjdiXNQZTG/Pn093G4IwguuIDCVt/+NjlBu3YVOkOAe3gK0CMNO1UQBGeeSUZy0iQKTf3hD4UFCzy3qjJib1iXNPbsoe/MDxk74frrgRNPJMdnyhQKZ6uwC1X6TYQHmduaGlJEfF8KQbmN++4j5fGd79C8qqFPO+csJo0Sccop5E1s3EjGWIVueApwX9B+Ypdu6NOH2hqtWUOS2s5QpNOFHcRVpQF4k0YmQwvwlFP8jW3SJDK83A5hxgyS+3ffTTmHV181vXyAbqz6+mLSUIsMdBLh2SzNha6xEAL4299onGecQcbs+efps848E7jpJlJH1o2NdlUzQZTG/PkU93fq56X7N/z2t9QT8a9/pRDW6acXXmMXnrIjDbe1MH8+vbdHZ28tTJhA77dxIylmFdy2R+0izKShm9NYsEA/pOqFZJKcnJUrSdFbjWoYSmP+fFqDXtWJOrj8cnIkPviA7kE1sc2ErDoQXJgQk0YJaGgwY+0q+venG9QtPMVfkJOxSKcpURkGaQBkiF95hSSqtZEqL0B1gai1+YA3abz7Li0q1cAHxW230c118MFEZNb3HDy42LDt2WOWC+qEp/zsI2BMmUJGZt48GsOYMXTwYm0t8D//A1xxBV1nRxqqsfCrNHI5fwTnht69gQcfJMO0Zk1xqfHQoUR8av5KVXFeOQ1OqoYxVkYqZcbRVfTtS9+5ujvbTmm4zS2H/XRCqrpjPfhg+/E6kYafRDgXGIQBIShkmU4Dv/td4Wt257fHSqOMSCSKW3hz0tuqNJyS4StW0OIJizQAks5/+pNZicRgj1A1xGptPuBNGi+/TI9+lYYdTjqJkuGf+xxw1VVEdCpGjCg+SW/PnuIEnRtp+EmCu+FznyNF+OlPkyo68cTCmzoMpbF6NSmrMA2xE3gtqA6En/DUunVkxI8/vnxjVDF6dGE7GmtOw2ufxvz5ZOQ9TgQOBUwaahjYj9L44AP6V4l1EDZpfOgS4UFg3a3qV2n4TYKXAjul4Tc89eqrFFryk39xw6xZlMS3w/DhxQcb+VUa77xDxK6zj8ALQtBY//xn4AtfKDwczi6n4bfkNiyC0wGvhe3bzb0mdobNiTTYeZgzp3xjVNHQ4K00nNYBqyJriK5cGDyYvvv2djN8lsmYc+qlNF59lR75fPRygjs0x0qjgrBujnHKaTgpjcWL6Vq39hZhwU5pqIlwgEjDqeSWbz6X5rehYsSI4nbjfkmDZb7H8eHaGDyYKsGsp4n27k3GQK1I8huemj+fjODUqeGM1Q1eSoP3ariRxogRlVm3QLHS8EMa69aRYj3mmPKOkWGnOv2U3L78MtmVSjiSdXW0pu1II0jJbUwaGhg2rHDC/SqN116jUlCXI41Dg1t4SkdpVDJ8ApDS2LatMNGtkgYTgVMifP9+2gUcVmzYDUIUH2/rNzzFG6/8nmEQBKrSYKg5DcB5LUhJhu3UU0srX/WD0aPJgeD585MI582aH/tYecfIsNsVrlZP8YFnTuGpl1+m8G9Yjo4XRo6MlUZFwQf3cPzSj9LYsIESn+ecU/ZhAiBvuFev4InwSoZPAPJks9nCm8+P0uB9BJUa79ixhS32/SiNrVupyKASIQnA2YFQK2uclEZjI403jGIIXTQ00HfJOS4/+zRYFVVCwQH2FUlqIhwwj9O1Yu1aqs6r5NyOHFkYBt63r7D/WEwaIWPyZPJ6eDH7IY1nn6VHbgVRbghRvCvcmgjv3dudNPr29e6+GhY4b8JzKyVVbumSRqVJzkoafpTGc8/R31eptTBgAHmSa9eav9MlDfbcK2nYeH8UK7m2tsLztp1IoxqqiHNEaj8w69zW1torDe7ocMYZ5RufFaNGFSqNvXtpbfB8xaQRMjjByseE+glP/f73lFQ++ODyjlHFsGGFeQI/4ak336xc+AQoPka1rY28TSYNHrNTvmj+fKr/D2MfgQ7GjiWPjcfjR2k8/TQ5ILo9p0qFEET+6kl6ahsRwJk0Xn6ZNkBOmFD2YebBpMHJcO5wqxo2O9J4911aP5UkuHHj6D5S59ZKGnV19krj6adpDYRRuKGLkSNpjjhasm9fYZPEmDRChvUMBl2lsWgRtWK/6qryj1HF1KmFHWftEuF2pLFuHSXtrbtfywmr0uBNiUwaTh1FAfobXnmlckl7gEhDStOwsSfJa8CJNHbvpp5B555bOW8YKCYNtY0IYL8Wcjmq7qlUfoDB/aKWLaPHtrbCDZBO+zTuvpvUs3WjazmRSFCBgBtp2CmNrVvJMavkWAEijXTavI+spKHTSYERk4YGxo+nxeBEGk5K4667yFO67LJKjNLEzJlk1HiBbNtWKEWdSOOZZ+jxs5+tzDiBYqVhJY1hw+jR2kMJIBW3c6e5Ea8S4LAEh6i6uogwOKHpRBp/+hP9vlKhKca0aaSMeF51wlN//zvNayXDJwBVEx17rBnSVduiA/b7NLZvp81sl1xitsuoFKZPLyQNNREO2CuN732P7sMLLqjIEPOw7ri3koZ1v5cbYtLQQCpFxOEUnrJTGp2d1LfmootMA1gpWE/+mz+/sCmaXcmtlGSEZ82ithGVQv/+dHM5KQ0n0pCSSPnQQ8PZhKgLJo2NG+mxu7vwUK1Uijx1a7XX009T+CWs3cq64NwUG7eurkKlYUcad95JCrBSxRsqzj2Xwk3NzYUHMAH2SuOBB+hvuu66ig4TAM3t+vVmlZdXInzBAuoR9fWvVy5hz+DwONuEffsKd7r7CUPGpKGJKVMo3JRO6ymNv/+dPKXzzqvsOIFC0ujooEc1UVxfT3+D6rX9+tfUY+drgY+5CgYhSG2wEbaSBpeNWknjzTfpRLjrrqtsuIc9MlVpqJ1leS2oc7t5M7Uu/+xnK1diyWDSeOUVGvNbbxU2SrSSxurV1Idr7lzvEybLAVZiN99MKkIljVGjSD2zkU6nqfX6aae5H0lcLvDc8nnvdjkNNTz1m9/Qvfe971VsiHkceiiFennDplVpxKRRBlx5JVWh3HAD7bsA3JXG00+TXK6kF8zgbrp/+QudC5DJFJMGYBqL9nbq+HriiZUN9TCOP55INpMpJo2aGtpIZe1PdeedFM64+OLKjrV3b5rb1183T3C0Kg2g0IG47jq69t/+rbJjBcgY9OlD3U+nTqU1es015uv19YWkcffd9Ddwi+1KY+JEOl3zD38ghazmNGbOpHlcsoSeP/ssVVpVQ2UA1GEaAL7/fTotb8+ewv5fqtLI5cgmnHmm3il9YSORoBzVyy+bFYoxaZQZn/0scP751Ff/t7+l3zmRRnMz8MQTJO91jvMsB447jhKvc42Dc+1Ig/Majz1GMezbb6+8JwyQd9naSq3praQBUIhKVRobN1L+5corS+sUGxQ33kjK4Xe/c1YaTBpvvw089RQ1bqxktYw6njfeoDBO3760JtVKvl69zHWwbx/w0EPU5p77FVUDt95qeuPvvmv+3hp2vesuMnaVLNxQMWUK8NOfkjKbMYOMsUq2qtKYP58UZ6VzWio+9jFSm9/9Lt1DQUkDUsoD7t+RRx4py4FsVsrGRikvu0zKKVOkTKfp9//6l5SAlC+8IGUuJ+UZZ0jZt6+U69eXZRha6OiQcskSKS+4QMo5cwpf+9WvaLwbNtB4Dz1Uylmz6OdqoK1Nyl69pLz4YinvuIPGtnev+fpJJ0l5yinm829/W8pEQsp16yo+VCklfe/HHiulEFIOHy7lwQebr/3sZzT+nTvp+UUXSXnQQVLu21eVoRago0PKzs7C311xhZSjR9PPv/gFjf3ttys/Niu6uqScOpXWAyOXk3LAACnnzpXy5ZdprD/5SfXGyHj9dSknTZLypz8t/P2pp0p5wgn081VX0Rrfvbviw8ujuZnWItEb3UeMTEZKAAulhn2tuoEvx79ykYYTFiygmZw3T8pHHqGf77qrokPwhUcfpTGuXGnefA89VN0xff3r5mJOJAoJ7LzzpJw+nX7es0fKIUOkPOec6oyT0dZGhAAQ6TLuuot+t3073aSplJTXX1+9cXrhmmukHDyYHKJDDpHyox+t9ojccdJJUg4dKmVNjZQTJ0q5a1e1R+SMT3yC5rO1Vcr6eimvvLLaIyL84Ae0Rq+9tvD3uqQRd7kNARyS+Nvf6OzmY4+tfELZD9Tw1F13UYLswgurO6b//V8KldxxB8V/1eT2sGFmV9DvfIdCWd/+dlWGmUefPhTWmzOncKwcqtqyhQ5zqqujapmeCq6k+8EPKKHLodeeilmzKJ/0yU/SvVbpMls/qKuj3MG119K9Vq3cixU330zjueSSgG+gwyxR+1dppbFmjeklT58u5dq1Ff1433j+eRrrF75AIRZVplYT3d3mPKr47ndpnK+9Ro///u/VGJ0eNm6k0OTw4fR3WEMWPQ233mrO+UUX0XfQk7Fpk5SPP07KqKfj/PPNuf3P/6z2aLyBWGlUDhMnUtJ5717g4x+vTnLWD1hp/O53VBJ8yy3VHQ+jpoYS3mobeoCUhpSUxB07FvjhD6syPC00NAA//jHw1a+SR1eNiik/4A2gZ59NyqmS5ctBMHJk5TfGBcWIEaSEHn20esn6ckAQwRxYmD17tly4cGG1h9FjsX49nTvwzW8C11/f8w3Fk09S5RpA52FX6qCdUrBrV2VOkCsVzz1HRwYvXWruGo4RDtJpCgPZHRfbEyGEWCSlnO11XVWUhhBiEIA/ABgPoBnA56WUuyzXjAHwCIARAHIA7pdS/ryyIz0wMW5cYcfLno4TTqAY9o03Vr4fUlBEgTAAUhjqQUIxwkNNTWXO0Kk0qrVP42YAL0kppwB4yXhuRQbAN6SU0wAcA+AaIUQV9n3GqDZGjKCNilEhjBgxDmRUizTOBvAb4+ffADjHeoGUcrOU8l3j530AGgGMrtQAY8SIESNGMapFGsOllJsBIgcAw9wuFkKMB/ARAPNdrrlaCLFQCLFwu7XnRIwYMWLECAVly2kIIf4BykdY4atWRwjRF8BTAL4updzrdJ2U8n4A9wOUCPfzGTFixIgRQw9lIw0p5WlOrwkhtgohRkopNwshRgKwOS0BEELUgAjjMSnl02UaaowYMWLE0ES1wlPzAFxq/HwpgOesFwghBIAHATRKKf+3gmOLESNGjBgOqBZp3AHg40KI1QA+bjyHEGKUEOJ545rjAXwJwKlCiPeMf5+sznBjxIgRIwZQpX0aUspWAHNsfr8JwCeNn98E0MO3ncWIESPGhwvxeRoxYsSIEUMbMWnEiBEjRgxtHJC9p4QQ+wCsrPY4egiGANhR7UH0AMTzYCKeCxPxXJg4RErpeRjtgdrldqVO460PA4QQC+O5iOdBRTwXJuK5MCGE0OryGoenYsSIESOGNmLSiBEjRowY2jhQSeP+ag+gByGeC0I8DybiuTARz4UJrbk4IBPhMWLEiBGjPDhQlUaMGDFixCgDYtKIESNGjBjaOKBIQwjxCSHESiFEkxDC7jTADwWEEA8JIbYJIZZWeyzVhhBijBDiFSFEoxBimRDi36s9pmpBCNFLCPGOEGKxMRffr/aYqg0hRFII8X9CiD9XeyzVhBCiWQixxOjx51p6e8DkNIQQSQCrQA0QWwAsAHCRlHJ5VQdWBQghTgLQBuARKeWh1R5PNWG03h8ppXxXCNEPwCIA53xI14UA0EdK2WYcO/AmgH+XUr5d5aFVDUKIGwDMBtBfSvnpao+nWhBCNAOYLaX03Oh4ICmNowA0SSnXSim7ATwOOlb2Qwcp5esAdlZ7HD0B8bHBJiShzXhaY/w7MLzGABBCNAD4FIAHqj2WKOFAIo3RADYqz1vwITUOMeyhc2zwgQ4jHPMe6OCzv0spP7RzAeBnAL4FIFflcfQESAB/E0IsEkJc7XbhgUQadm3UP7ReVIxC6B4bfKBDSpmVUs4C0ADgKCHEhzJ8KYT4NIBtUspF1R5LD8HxUsojAJwJ4BojxG2LA4k0WgCMUZ43ANhUpbHE6EGIjw0uhpRyN4BXAXyiuiOpGo4HcJYRy38cdNjbo9UdUvVgnGUEKeU2AM+Awv22OJBIYwGAKUKICUKIWgAXgo6VjfEhRnxssAkhxFAhxADj53oApwFYUdVBVQlSym9LKRuklONBtuJlKeUXqzysqkAI0ccoEoEQog+A0wE4Vl4eMKQhpcwAuBbAX0HJzieklMuqO6rqQAjxewBvAThECNEihLii2mOqIuJjg02MBPCKEOJ9kJP1dynlh7rUNAYAYDiAN4UQiwG8A+AvUsoXnS4+YEpuY8SIESNG+XHAKI0YMWLEiFF+xKQRI0aMGDG0EZNGjBgxYsTQRkwaMWLEiBFDGzFpxIgRI0YMbcSkESOGB4QQA4QQX1OejxJCPFmmzzpHCHGby+uHCSEeLsdnx4ihg7jkNkYMDxg9q/5ciY7BQoh/ATjLrduoEOIfAL4spdxQ7vHEiGFFrDRixPDGHQAmGRsDfyyEGM9nlQghLhNCPCuE+JMQYp0Q4lohxA3GGQ1vCyEGGddNEkK8aDSEe0MIMdX6IUKIgwF0MWEIIc4XQiw1zr94Xbn0T6BdzDFiVBwxacSI4Y2bAayRUs6SUn7T5vVDAXwB1K/ndgDtUsqPgHblX2Jccz+A66SURwK4EcA9Nu9zPIB3lee3AThDSjkTwFnK7xcCOLGEvydGjMBIVXsAMWIcAHjFOKtjnxBiD0gJAMASAIcbHXaPA/BHaoUFAKizeZ+RALYrz/8J4GEhxBMA1EaL2wCMCnH8MWJoIyaNGDFKR5fyc055ngPdYwkAu42W5G7oAHAQP5FSzhVCHA06KOg9IcQsKWUrgF7GtTFiVBxxeCpGDG/sA9Av6H82zu9YJ4Q4H6DOu0KImTaXNgKYzE+EEJOklPOllLcB2AGz9f/BcOlCGiNGORGTRowYHjC8+38aSekfB3ybiwFcYXQSXQb7o4hfB/ARYcawfiyEWGIk3V8HsNj4/ccA/CXgOGLEKAlxyW2MGD0IQoifA/iTlPIfDq/XAXgNwAnGcQAxYlQUsdKIEaNn4b8A9HZ5fSyAm2PCiFEtxEojRowYMWJoI1YaMWLEiBFDGzFpxIgRI0YMbcSkESNGjBgxtBGTRowYMWLE0EZMGjFixIgRQxv/H3vlYfBh7JF2AAAAAElFTkSuQmCC\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "t = np.arange(0, (len(ecg) / fs), 1.0 / fs)\n",
    "plt.plot(t, ecg, color = 'blue', label='raw ECG')\n",
    "plt.plot(t, sig, color = 'red', label='filtered ECG')\n",
    "plt.xlim([0, 5])\n",
    "plt.xlabel('time (s)')\n",
    "plt.ylabel('ECG')\n",
    "plt.legend()\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### detect beats"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 118,
   "metadata": {},
   "outputs": [],
   "source": [
    "beats = detect_beats(sig, fs)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Plot the result"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 119,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "t = np.arange(0, (len(ecg) / fs), 1.0 / fs)\n",
    "plt.plot(t, sig, color = 'blue', label='ECG')\n",
    "plt.scatter(t[beats], sig[beats], color = 'red', marker = 'o', label='beats')\n",
    "plt.xlim([0, 15])\n",
    "plt.xlabel('time (s)')\n",
    "plt.ylabel('ECG')\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### assess feasibility of beat detections"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 120,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "feas (1 indicates feasible): 1\n"
     ]
    }
   ],
   "source": [
    "feas = assess_feasibility(beats)\n",
    "print(f'feas (1 indicates feasible): {feas}')"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### create template beat shape"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 121,
   "metadata": {},
   "outputs": [],
   "source": [
    "templ = calculate_template(ecg, beats)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 122,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "durn = (len(templ)-1)/fs\n",
    "durn = durn+0.01\n",
    "t = np.arange(0, durn, 1.0 / fs)\n",
    "plt.plot(t, templ, color = 'blue', label='Template ECG beat')\n",
    "plt.xlabel('time (s)')\n",
    "plt.ylabel('Template ECG beat')\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### calculate correlation coefficient"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 123,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Corr coeff: 0.9606167664715456\n"
     ]
    }
   ],
   "source": [
    "cc = calculate_cc(ecg, beats, templ)\n",
    "print(f'Corr coeff: {cc}')"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### compare correlation coefficient to threshold"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 124,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "quality (1 indicates high quality): 1\n"
     ]
    }
   ],
   "source": [
    "qual = compare_cc_to_thresh(cc, thresh)\n",
    "\n",
    "if feas == 0:\n",
    "        qual = 0\n",
    "print(f'quality (1 indicates high quality): {qual}')"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "<div class=\"alert alert-block alert-info\"><p><b>Question:</b> What value of correlation coefficient would result in this being low quality?</p></div>"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Re-do quality assessment using single function"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 125,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "quality (1 indicates high quality): 1\n"
     ]
    }
   ],
   "source": [
    "qual = assess_qual(ecg, fs, thresh)\n",
    "print(f'quality (1 indicates high quality): {qual}')"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "id": "dnSasCJ5pHWG"
   },
   "source": [
    "<div class=\"alert alert-block alert-info\"><p><b>Extension 1:</b> How could we extend this to assess the quality of PPG signals? Consider what threshold would be required (see <a href=\"https://doi.org/10.1109/JBHI.2014.2338351\">the original publication</a>) and how the code would need to be adjusted.</p></div>"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "<div class=\"alert alert-block alert-warning\"><p><b>Further reading:</b> <a href=\"https://peterhcharlton.github.io/publication/ppg_sig_proc_chapter/\">this book chapter</a> provides further information on PPG signal quality assessment.</p></div>"
   ]
  }
 ],
 "metadata": {
  "colab": {
   "name": "signal-filtering.ipynb",
   "provenance": []
  },
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.8.8"
  },
  "toc": {
   "base_numbering": 1,
   "nav_menu": {},
   "number_sections": true,
   "sideBar": true,
   "skip_h1_title": true,
   "title_cell": "Table of Contents",
   "title_sidebar": "Contents",
   "toc_cell": false,
   "toc_position": {},
   "toc_section_display": true,
   "toc_window_display": true
  }
 },
 "nbformat": 4,
 "nbformat_minor": 1
}
